MYSQL索引问题:如何在查询中使用索引?
如果你有手表,
SQL & gt创建表test_tab (2 id INT,
3 name VARCHAR(10),
4年龄INT,
5 val VARCHAR(10)6);你的业务,有一个调查,是
SELECT * FROM test_tab其中name =外部输入数据。
刚开始数据不多的时候,实施效果还不错。
随着数据量的增加,这个查询在执行的时候会越来越慢。
然后根据名字建立了一个索引。
在test_tab (name)上创建索引idx _ test4 _ name
这样可以加快前一次查询的速度。
然而有一天,你执行了下面这条SQL,发现速度又慢了。
SELECT * FROM test_tab其中年龄= 25岁
为什么?因为年龄字段上没有索引。
索引只是名义上的。
换句话说,WHERE中的条件将自动确定是否有可用的索引,如果有,是否应该使用它。
多列索引是包含两个字段的索引。
例如:在test _ tab (name,age)上创建索引idx _ test _ name _ age然后select * from test _ tab where name like ' Zhang % '
年龄= 25岁
这样的查询将能够使用上述索引。
多列索引,另一种可用的情况是在某些情况下,可以查询,只访问索引就够了,不需要访问表。例如,SELECTAVG( avg)的平均年龄为from test _ tab where name LIKE ' Zhang % '
此时,姓名和年龄都包含在索引中。查询不需要检索表中的数据。