mysql不走索引的SQL语句
时间:2023-05-26 20:02:17阅读数:0
提起索引大家都不陌生,但在mysql中也有不使用索引的情况,接下来我们一起看看都有哪些不走索引的sql语句。
1、索引列参与表达式计算。
SELECT 'sname' FROM 'stu' WHERE 'age' + 10 = 30;
2、函数运算。
SELECT 'sname' FROM 'stu' WHERE LEFT('date',4) < 1990;
3、%词语%–模糊查询。
SELECT * FROM 'manong' WHERE `uname` LIKE '码农%' -- 走索引SELECT * FROM 'manong' WHERE `uname` LIKE '%码农%' -- 不走索引
4、 字符串与数字比较。
CREATE TABLE 'a' ('a' char(10));EXPLAIN SELECT * FROM 'a' WHERE 'a'="1" -- 走索引EXPLAIN SELECT * FROM 'a' WHERE 'a'=1 -- 不走索引,同样也是使用了函数运算
5、 查询条件中有or。
即使其中有条件带索引也不会使用。换言之,就是要求使用的所有字段,都必须建立索引:
select * from dept where dname='xxx' or loc='xx' or deptno = 45;
6、正则表达式不使用索引。
优化器估计使用全表扫描要比使用索引快,不使用索引。
MySQL内部优化器会对SQL语句进行优化。
相关文章
-
mysql触发器有什么作用
mysql触发器作用1、在写数据之前,可以强制检查或转换数据等。2、触发器执行错误,前面成功执行的SQL将被撤销。导致事务回滚.触发器名称在表中必须是唯一的,数据库中的各个表之间也可以相同。在每一个时
>2023-11-26 -
mysql分析器如何理解
理解mysql分析器1、根据mysql语法写出sql后交给服务层,分析器对sql语句进行词法分析和语法分析。2、mysql分析器使用mysql语法规则进行验证和分析查询。例如验证是否使用错误的关键字,
>2023-11-26 -
mysql执行器是什么
mysql执行器说明1、调用存储引擎的API操作数据。2、优化器完成sql优化后,向执行器提供执行计划,执行器开始执行执行计划来操作数据。打开表时,执行器会根据表的引擎定义使用该引擎提供的接口。当你开
>2023-11-26 -
mysql分区表的介绍
mysql分区表的介绍1、对于用户来说,分区表是一个独立的逻辑表,但底层由多个物理子表组成。实现分区的代码实际上是通过封装一组底层表的对象,但对于SQL层来说,它是一个完全封装底层的黑盒。MySQL实
>2023-11-26 -
mysql分区的应用场景
mysql分区的应用场景说明1、最佳场景数据的时间序列性较强,则可按时间进行分区。2、如果数据有明显的热点,除了这部分数据,其他数据很少被访问,那么热点数据可以单独放在一个分区。这样这个分区的数据就可
>2023-11-26