mysql索引总结
来源:互联网 发布:linux怎么创建用户密码 编辑:程序博客网 时间:2024/05/22 16:52
索引包括
普通索引
唯一索引(无重复值)
主键索引 特殊的索引,一个表只能有一个主键索引。其作用与唯一索引一样。
组合索引 超过1个列组合成的索引
一、.适合用索引的表
经常查询的列,包括用索引的操作符号:<,<=,>=,>,=,between,in,以及like 右 %匹配。
二、不适宜用索引的情况
由于索引表需要一定的空间存储,对表进行增删改的时候会对索引表同步更新。所以经常更新的列不适合建索引。另外一种情况是列数据重复数据太多,返回结果超过30%相同值的情况下会忽略索引。
三、组合索引
1.假设设置两个列为组合唯一索引,如果其中其中一个列重复值太多将使索引失效。
2.组合索引根据 最左前缀,相当于由设置索引列左边开始组合。例如 组合索引 a,b,c 列。条件满足 查询列存在 a或a,b及a,b,c列按顺序查询才会生效。 而 b,c、c,b 则不会使用上索引。
3.分别建索引 a,b,c 与建 组合索引 a,b,c 的区别在于 分别建索会比组合索引需要更多的空间。还有是第二点用不上索引的情况。
四、分析索引适用情况
用explain + 查询的sql
返回的列包括:
id :自增编号 如果有多个表联合查询将返回多行
select_type :
1.SIMPLE 简单的查询 不包括join union 等
2.PRIMARY 最外层的查询
3.DEPENDENT SUBQUERY 子查询的第一个select
例:
EXPLAIN SELECT *
FROM `yisi_city`
WHERE id
IN (
SELECT id
FROM yisi_admin_member
WHERE `id` =1
)
4.DERIVED 查询的子集合
例如:
EXPLAIN SELECT *
FROM (
SELECT *
FROM `yisi_city`
WHERE 1
) AS a
table :查询的表
type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的。
possible_keys:可能用上的索引
key:实际用上的索引
key_len:使用索引的长度。在建立索引列时可定义列的长度,其意义在于减少索引空间及当查询值超过某个长度值才使用索引。
ref:显示使用哪个列或常数与key一起从表中选择行
rows:查询扫描的行数
extra:mysql 给出使用索引优化的建议
- mysql 索引总结----索引算法
- mysql 索引总结----索引算法
- mysql 索引总结
- MySQL数据库索引总结
- mysql索引总结
- mysql 复合索引 总结
- 索引总结-mysql
- mysql 索引总结
- MySQL索引总结
- mysql索引总结
- mysql索引使用总结
- mysql -- 索引总结
- mysql 复合索引 总结
- mysql索引总结
- MySQL索引类型总结
- MySQL索引总结
- MySql索引总结
- MySql索引总结
- Qt网络编程之QNetworkReply
- 高级Java程序员值得拥有的10本书
- LeetCode 322 Coin Change
- 6. GUI
- 为什么ping不通某网站,但是却可以访问该网站?
- mysql索引总结
- StringBuilder String string.Concat 字符串拼接速度
- 前百度移动框架总工程师分享iOS开发
- CSS3的REM设置字体大小
- iOS 与 JS 交互开发知识总结
- Android 自定义带动画的dialog
- Octave中find函数用法
- collections模块下的几个类
- Apache 设置支持伪静态