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 % '

此时,姓名和年龄都包含在索引中。查询不需要检索表中的数据。