mysql在哪些函数下不走索引

2023-12-21 10:00:15 举报文章

MySQL作为开源的关系型数据库管理系统,其性能优异且稳定可靠,被广泛应用于各类企业级应用和网站开发中。在使用mysql时,我们常常需要优化查询语句,以提高数据库查询速度和效率。然而,在实际开发过程中,我们经常会遇到mysql不走索引的情况,这会导致查询效率低下,从而导致应用程序变得非常缓慢。在下面,我们就来看一下,在哪些函数下,mysql会不走索引。

--by www.qzphp.cn
在以下情况下,MySQL不走索引:
1.函数调用查询
比如,这个查询不会使用索引:
SELECT * FROM user WHERE year(regtime) = 2018;
而这个查询会使用索引:
SELECT * FROM user WHERE regtime >= '2018-01-01' and regtime <= '2018-12-31';
2.表达式运算查询
比如,这个查询不会使用索引:
SELECT * FROM user WHERE id%10=8;
而这个查询会使用索引:
SELECT * FROM user WHERE id>=8 AND (id-8)%10=0;
3.列函数查询
比如,这个查询不会使用索引:
SELECT * FROM user WHERE left(name,3)='abc';
而这个查询会使用索引:
SELECT * FROM user WHERE name LIKE 'abc%';
4.操作符限制索引
比如,这个查询不会使用索引:
SELECT * FROM user WHERE name LIKE '%abc%';
而这个查询会使用索引:
SELECT * FROM user WHERE name='abc';
 

总之,在使用mysql进行查询时,如果能够避免在不支持索引的函数下进行查询,就可以提高数据库的查询效率和速度。因此,在实际开发中,我们应该尽量避免在不支持索引的函数下进行查询,以优化mysql数据库的性能。

如果你认为本文可读性较差,内容错误,或者文章排版错乱,请点击举报文章按钮,我们会立即处理!