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数据库的性能。