两列上的MySQL主键是否有助于第二列上的查询?

两列上的MySQL主键是否有助于第二列上的查询?,第1张

概述我有两个班,Foo和Bar.每个酒吧将包含许多Foos. Foos可以在多个Bars中,但每个Foo只能在给定的Bar中.我有以下表结构:CREATE TABLE `bar_foos` ( `bar_id` INT UNSIGNED NOT NULL, `foo_id` INT UNSIGNED NOT NULL, PRIMARY KEY

我有两个班,Foo和bar.每个酒吧将包含许多Foos. Foos可以在多个bars中,但每个Foo只能在给定的bar中.我有以下表结构:

CREATE table `bar_foos` (   `bar_ID` INT UNSIGNED NOT NulL,`foo_ID` INT UNSIGNED NOT NulL,PRIMARY KEY ( `bar_ID`,`foo_ID` ));

这应该适用于我的多对多关系.我的问题是,如果我希望我的代码能够检查Foo是否被任何bars使用,I.E.告诉用户“这个Foo无法被删除,因为它正被5个柱子使用”,PRIMARY KEY索引是否帮助我查询

SELECT * FROM `bar_foos` WHERE `foo_ID`=2

要么

SELECT COUNT(*) FROM `bar_foos` WHERE `foo_ID`=2

或者,我是否只需要一个单独的foo_ID列索引?最佳答案http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

“如果表具有多列索引,则优化程序可以使用索引的任何最左前缀来查找行.例如,如果在(col1,col2,col3)上有三列索引,则已编制索引搜索(col1),(col1,col2)和(col1,col3)的功能.

如果列不构成索引的最左前缀,MysqL就无法使用索引.“

总结

以上是内存溢出为你收集整理的两列上的MySQL主键是否有助于第二列上的查询?全部内容,希望文章能够帮你解决两列上的MySQL主键是否有助于第二列上的查询?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1167155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存