如何正确设置Mysql数据库中的表键(索引)
我想知道如何构造和创建MYSQL表中的键,以确保最高效的搜索 假设我有一个包含字段的表: a、b、c、d 我在SELECT语句中使用了WHERE条件下这些字段的所有可能组合 创建一个覆盖所有字段的组合键是否更好 或者我最好为这四个字段中的每一个创建一个键 哪种变体对于搜索查询具有更好的性能 键应仅为索引类型 谢谢你的回答。我的文章介绍了一些基本知识 我在SELECT语句中使用WHERE条件中这些字段的所有可能组合 这是不实际的。取而代之的是,获得一些UI方面的经验,并决定通常查询哪两列。然后有一个如何正确设置Mysql数据库中的表键(索引),mysql,indexing,Mysql,Indexing,我想知道如何构造和创建MYSQL表中的键,以确保最高效的搜索 假设我有一个包含字段的表: a、b、c、d 我在SELECT语句中使用了WHERE条件下这些字段的所有可能组合 创建一个覆盖所有字段的组合键是否更好 或者我最好为这四个字段中的每一个创建一个键 哪种变体对于搜索查询具有更好的性能 键应仅为索引类型 谢谢你的回答。我的文章介绍了一些基本知识 我在SELECT语句中使用WHERE条件中这些字段的所有可能组合 这是不实际的。取而代之的是,获得一些UI方面的经验,并决定通常查询哪两列。然后有一
索引(x,y,…)
,其中x和y是最常见的
如果x和y都使用=
进行测试,则将哪个放在第一位并不重要。否则,请先放置=
一个。如果使用=
测试两个列,则拥有多个列将没有帮助
请提供应用程序的提示。房地产?做媒?还有别的吗
创建一个覆盖所有字段的组合键是否更好
很少。索引中列的顺序很重要
或者我最好为这四个字段中的每一个创建一个键
也许吧。根据可能的组合,您还可以添加更多的列
哪种变体对于搜索查询具有更好的性能
我们需要谈谈具体的例子
键应仅为索引类型
嗯?“键”和“索引”是同义词
更多
由于这些值是“连续的”“科学的”值,您可能应该对数据类型使用FLOAT
。你可能主要是比较范围(例如,pH<5.0)
使用复合索引时,索引在第一个“范围”之后不再有用。因此,您可能不会比拥有4个1列索引做得更好。(让我们看一些典型的问题示例。)非常感谢里克·詹姆斯的解释。他们很有帮助。我的表格是关于科学数据的。pH值、盐度等参数需要以各种可能的方式组合参数。这些参数听起来像是最好存储为
FLOAT
的值。但不要使用=或!=;进行测试;由于存在舍入问题,这类测试可能会产生意想不到的结果。(我补充了我的答案。)