MySQL 关于索引那点事
索引
其实数据库中的数据是按页存放的 其实索引也是按页存放的 所以本质上索引也占硬盘空间(以最小的消耗,换取最大的利益)
索引是一种有效组合数据的方式!为快速查找到指定记录做铺垫
目的就是快速或者某个记录! 提高了数据库的检索速度! 作用: 大大提高数据库的检索速度 改善数据库性能
MySQL索引存储类型分类 01.B-树索引:InnoDB,MyISAM均支持 02.哈希索引
其实索引是把双刃剑(利弊共存),如果使用不当,反而会降低索引性能
主键:加快检索数据/唯一标识
常用索引类型: 01.普通索引:允许在定义为索引的列中 出现 重复值和空值! 02.唯一索引:索引列不允许出现重复值,但是可以出现一个空值! 03.主键索引:创建主键的时候,系统会默认创建一个主键索引!唯一!不能为空! 04.复合索引:将我们的多个列组合起来!(name,sid)姓名和身份证号! 05.全文索引:允许值的全文查询!允许空值和重复值!适合在一个内容比较多的列!text! 06.空间索引:对空间数据类型的列建立的索引
■按照下列标准选择建立索引的列 频繁搜索的列 经常用作查询选择的列 经常排序、分组的列 ,经常用作连接的列(主键/外键) ■请不要使用下面的列创建索引 仅包含几个不同值的列 表中仅包含几行
Eg:
-- 查询指定表的索引
SHOW INDEX FROM student;
TABLE:索引所在的表
Non_unique:索引是否唯一 0:唯一 1:不唯一
key_name:索引名称
seq_in_index:该列在索引中的位置
column_name:定义所用的列名称
null:该列是否为空
index_type:索引类型
-- 给姓名增加 普通索引
CREATE INDEX index_studentName
ON student(studentName);
-- 给学生姓名和身份证号 增加 组合索引
CREATE INDEX index_name_sid
ON student(studentName,identityCard)
-- 删除索引
DROP INDEX index_name_sid ON student;
DROP INDEX index_studentName ON student;
-- 创建索引的原则 01.经常被查询的列 02.经常用作选择的列 03.经常排序,分组的列 04.经常用作连接的列(主键/外键)
使用索引时的注意事项: 01.查询时减少使用*返回全部的列,不要返回不需要的列! 02.索引尽量要少,在字节数小的列上建立索引! 03.where字句中有多个条件表达式的时候,包含索引的列要放在其他表达式之前! 04.在order by的字句中避免使用表达式!
(C) 房上的猫 。 保留所有权利。 https://www.cnblogs.com/lsy131479/
如需转载,请注明出处!!!
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- 动手写简单的嵌入式操作系统二
- C++核心准则E.6:使用RAII防止资源泄露
- C++核心准则E.12: 当不可能或不愿意通过抛出异常退出函数时使用noexcept
- C++核心准则E.13: 直接拥有一个对象所有权时永远不要抛出异常
- C++核心准则E.14:使用根据目的设计的用户定制类型异常(非内置类型)
- C++核心准则E.16:析构函数,内存释放和swap操作永远不能失败
- Eclipse配合GDB和jlinkGDBServer仿真调试STM32
- 单片机程序构架
- 打卡群刷题总结0730——格雷编码
- 常用的vim配置,_vimrc文件
- 算法篇:链表之删除和为0的元素
- 算法篇:链表之反转链表
- 算法篇:链表之排序
- 算法篇:链表之删除链表中重复节点
- 小小验证码,作用可真不小!