如何充分利用mysql中的索引?

vu8f3i0k  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(294)

我必须从一个大约有一百万个条目的表中选择值。我的哪项查询效率更高?
查询1:

select * from table1 
where indexedcolumn1 < value1 
and unindexedcolumn1 < value 2 
and indexedcolumn2 < value2;

问题2:

select * from table1 
where indexedcolumn1 < value1 
and indexedcolumn2 < value2 
and unindexedcolumn1 < value 2;

如何充分利用索引?

9rnv2umw

9rnv2umw1#

索引3列中的每一列。优化器将根据统计信息选择最佳索引。它可能仍然使用错误的索引,但它是当前可用的最佳索引。

sg2wtvxw

sg2wtvxw2#

whe子句中的条件序列(列)没有任何意义,因为mysql查询优化器没有考虑它。所以(如上所述)您的查询是相同的。
使用explain(例如:explain select*from….)命令找出服务器执行查询的方式。在google的官方文档中阅读更多关于解释输出的内容(有很多关于解释的好文章)。
尝试索引未索引的列,因为这是提高查询性能的最佳(而且我猜是唯一的)方法。一个没有索引的列通常会破坏所有其他的工作。

相关问题