Mysql学习笔记整理之索引
索引的概念:
索引是一个分散存储的数据结构(检索)对数据库表中一列或多列的值进行排序
为什么要用索引?
- 索引能极大的减少存储引擎需要扫描的数据量
- 索引可以把随机IO变成顺序IO
- 索引可以帮助我们进行分组,排序操作时,避免使用临时表
聚集索引:
数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同
辅助索引末尾指向主键索引,然后通过主键索引找值
如果innodb没有建索引,默认会创建一个隐式主键索引 6bit
只要是索引是连续的,那么数据在存储介质上的存储位置也是连续的
联合索引
例如创建的索引是 [name,phone]
- 经常用的列优先 [最左匹配原则]
- 选择性高的优先 [离散度高原则 ]
- 宽度小的列优先 [最少空间原则]
列的离散型:
count(distinct column):count(column)
比例越大离散性越好,离散性越好选择性越好
最左匹配原则:
对索引中关键字进行计算,一定是从左往右一次进行,且不可跳过
覆盖索引:
如果查询列克通过索引节点中的关键字直接返回,可减少数据库IO,将随机IO变为顺 序IO,提高查询
索引的规范:
- 索引列的数据长度能少则少。
- 索引一定不是越多越好,越全越好,一定建合适的,字段不要太大, 比如phoneNum是11位即可
- 建索引,不允许该字段为空
- 匹配到前缀可用到索引Like 999%
- Where条件中Not in和 <>无法使用索引
- 匹配范围值,order by 也可以用到索引
- 多用指定列查询,只返回自己想要的数据列,少用select *
Mysql学习笔记整理之索引的更多相关文章
- 【mysql学习笔记整理】
/*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作#创建#数据库的创建USE mysql;CREATE DATABASE db_x;#删除#删除数据库DROP DATABASE ...
- Mysql学习笔记整理手册
目录 (1) str_to_date (2) 递归查询 (3) 排序问题 (4) 条件函数 (5) 列转行函数 (6) find_int_set (7) 类型转换函数 (8) 合并更新 继上一篇博客& ...
- Mysql学习笔记(九)索引查询优化
PS:上网再次看了一下数据库关于索引的一些细节...感觉自己学的东西有点少...又再次的啃了啃索引.... 学习内容: 索引查询优化... 上一章说道的索引还不是特别的详细,再补充一些具体的细节... ...
- MySQL学习笔记(六):索引
本文主要介绍MySQL 中关于索引的一些问题,例如:索引的作用:怎么创建索引:设计索引的原则:怎么优化索引等等. 一:索引概述 索引一般是通过排序,然后查找时可以二分查找,这一特点来达到加速查找的目的 ...
- MySQL 学习笔记整理
1. 创建表 CREATE TABLE item( ID INT(6) NOT NULL AUTO_INCREMENT, Name CHAR(32) NOT NULL, Price DECI ...
- Mysql学习笔记整理之数据库优化
数据库性能瓶颈的原因 数据库连接数 数据量大 硬件资源限制 数据性能优化方案 sql优化 2.缓存 3.建好索引 4.读写分离 5. 分库分表 慢日志查 ...
- Mysql学习笔记整理之引擎
mysql的引擎: myisam引擎 Mysql 5.5之前默认的存储引擎 数据.索引分别存储 (数据物理磁盘---索引物理磁盘) .MYD 存储数据 表级索 ...
- Mysql学习笔记整理之选用B+tree结构
为什么mysql不使用平衡二叉树? 数据处的深度决定着他的IO操作次数,IO操作耗时大 每一个磁盘块保存的数据量太小 B+Tree和B-Tree的区别? B+树几点关键字搜索采用闭合区间 B+树非叶节 ...
- Mysql数据库学习笔记之数据库索引(index)
什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...
随机推荐
- F#周报2019年第34期
新闻 高效的F#,提示与技巧 Fable 社区资源 Visual Studio提示与技巧:为.NET增加生产力 无风险地尝试Compositional IT的培训包--如果没有增加任何价值,可以得到完 ...
- python 26 反射
目录 1. 类的反射 1.1 实例对象 1.2 类 1.3 其他模块 -- 其他.py文件 1.4 本模块 -- 当前.py文件 2. 函数与方法的区别 2.1区别的方法: 2.2 总结 3. 特殊的 ...
- python 22 类与对象
目录 1. 从空间角度研究类 1.1 添加对象的属性: 1.2 添加类的属性: 1.3 类与对象的关系: 2. 类与类直接的关系 2.1 类与类的关系: 2.2 依赖关系 -- 主从之分 2.3 组合 ...
- egret之每日登陆奖励
//*******首登奖励********* */ //*********************** */ public setUserSetting(key, value) { if (value ...
- Java多线程之线程的生命周期
Java多线程之线程的生命周期 一.前言 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态.在线程的生命周期中,它要经过新建(New).就绪(Runnable).运行(R ...
- python修改内存,(修改植物大战僵尸)
import win32process # 进程模块 import win32con # 系统定义 import win32api # 调用系统模块 import ctypes # c语言类型 imp ...
- [python]错误检测及异常处理try-except
1. 简介 要给代码添加错误检测及异常处理,只需要将其封装在try-except中. try:通常的代码 except:处理错误和异常的代码 2. 示例 import os try: path = ' ...
- gym/101873/GCPC2017
题目链接:https://codeforces.com/gym/101873 C. Joyride 记忆化搜索形式的dp #include <algorithm> #include < ...
- HDU-2795Billboard+对宽度建立线段树
参考: https://blog.csdn.net/qiqi_skystar/article/details/49073309 传送门:http://acm.hdu.edu.cn/showprobl ...
- 携程PMO--小罗说敏捷之WIP限制在制品
转自本人运营的公众号“ 携程技术中心PMO”(ID:cso_pmo) WIP是什么? WIP(work in progress)指的就是工作中心在制品区.在经过部分制程之后,还没有 ...