“OR”操作指标我有喜欢创建用于查询
where field1=val1 or field2=val2
有的像
where fieldx=valx and fieldy=valy and (field1=val1 or field2=val2)
如何优化这些查询通过创建索引条件的一些MySQL的查询?我的直觉是为第一个查询为field1和field2创建单独的索引,因为它是一个OR,因此组合索引可能不会有太大的好处。
对于第二个查询,我打算为上述原因再次创建2个索引:fieldx,fieldy,field1和fieldx,fieldy,field2。
该解决方案是否正确?这是一个非常大的表,所以我不能通过应用索引和解释查询来进行实验。
您可能会创建一个具有相同结构的新表,但只能使用要测试的数据子集并查看哪个索引最符合您的需求。 – 2010-08-30 07:20:43
这是不可能回答这样一个宽泛和简单的问题。每个特殊情况都需要它自己的解决方案。使用EXPLAIN来测试您的查询。其实,OR操作器不需要任何特殊的处理。它使用相同的索引作为'WHERE field = value'单个条件 – 2010-08-30 07:24:10
您忘记告诉我们该表仅用于阅读还是有很多正在进行的CRUD操作... – 2010-08-30 08:11:29