4.2.2 MySQL索引原理以及SQL优化

预处理语句
将SQL语句分离成两个部分,准备和执行
准备 将SQL语句发送给服务器进行解析,编译和优化 生成一个执行计划并缓存
执行 将传递过来的参数作用在缓存好的查询计划再执行
优点:
1.减少重复解析和编译
2.防止SQL语句注入,避免拼接字符串而导致SQL注入

索引是什么?
一种有序的存储结构
按照单个或者多个列的值进行排序
索引的目的:提升搜索效率

索引分类:
数据结构:B+树索引、hash索引、全文索引(根据关键字索引全局)
物理存储:聚集索引、辅助索引(二级索引)

B+树
全称:多路平衡搜索树,减少磁盘访问次数

列属性:主键索引、唯一索引、普通索引、前缀索引
列的个数:单列索引、组合索引

索引的代价:占用空间,维护的代价。一张表不能维护多张表,DML操作变慢

索引的使用场景:where、group by、order by
不要使用索引场景:没有where/group by/order by中使用,区分度不高的列,经常修改的列,表数据量少

你可能感兴趣的:(零声教育,mysql,sql,spring)