| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> mysql 创建索引规范 -> 正文阅读 |
|
[数据结构与算法]mysql 创建索引规范 |
1)用途、优缺点
--------------------------------------------------------------------------------------------------------------------------------- 2)索引的分类 存储结构类型?
应用类型
聚簇索引与非聚簇索引
--------------------------------------------------------------------------------------------------------------------------------- 3)字段选取规范 主键自增索引(表中必须创建主键索引)
字段查询频率高,字段区分度高,更新频率低(查询频率与区分度同样重要)
唯一性的业务字段必须创建唯一索引(避免脏数据)
字段值设置非NULL,NULL使得索引与索引统计变得复杂。
---------------------------------------------------------------------------------------------------------------------------- 4)联合索引,最左匹配原则 由于mysql一次查询只能使用到一个索引,所以再多个查询条件的场景下需要考虑创建联合索引,联合索引需要考虑将查询评率更高的字段放在前面(最左匹配原则)。 联合索引并非在所有使用场景都一定要满足最左匹配原则。在查询条件都是等值匹配时mysql的查询优化器可以优化查询顺序,保证查询时可以使用到该索引【规范最好遵守】。 ---------------------------------------------------------------------------------------------------------------------------- 5)索引下推 mysql 5.6+ 之后Innodb引擎模式下默认开启了索引下推优化【减少回表的次数】。 举例:联合索引 union_a_b_c(a,b,c) 查询:select * from table_name where a=1 and b like '%b%' and c like?'%c%'; 无索引下推时:此次查询只能先使用a字段索引查询,再回表查询 b 与 c。 索引下推时:先使用a字段索引查询,然后直接根据索引来判断查询b 与 c。 ---------------------------------------------------------------------------------------------------------------------------- 6)explain:解析查询计划??????? id:查询序号
explain extended sql; + show warning;获取经过优化器处理的sql(去除恒等条件 1=1) ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:55:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |