索引-80%优化处理
mysql 索引-存储。
1.优化索引。
2.最优索引。
普通sql - 好的索引-最优索引
索引优点:--索引本来就是有序
1.1:减少扫描量
1.2:避免排序+避免临时表产生
1.3:随机I/O变为顺序I/O 固定硬盘 ssd iops-每秒查询次数。
1.4:可以减少查询锁定行。
串行硬盘。
B+Tree索性--mysql索引
二叉搜索树。
平衡的m路搜索树
==
聚族索引
主键+补助建、
二次查询,但是io控制的好,不损失,减少维护成本。适合更新多的。
非聚族索性
都是
InnoDB
=====================
表空间-区-页-16-块-4
engine
14.6g
联合索引。
=========================================================
避免where 字句中 对字段+函数,避免格式转化等函数,否则索引就无效。
最左原则。计算索引值。双B关联,字符类型不一致,关联会查询换较慢。
mysql。
避免关联拆sql处理。主从分离-读写分离。
service存控制了。
水平拆表。
避免使用子查询。
总数:1. count() 2.统计某列除null外的数量。
联合索引-一次查询
============================================
分页:
limit 0,10; size+计算初步偏移量。currentPage 。当期页和最终请求页的差值。
==============================
用户列表再次优化查询。
==============================
小表驱动大表才能left join
Theta书写sql;sql优化器。
select * from a,b where a.a1.=b.b2;
=============================
数据挖掘。hadoop计算分析结果实时转到mysql中。
复杂度-字典 索引记录关联吗?
=========================================
mysql离线报表,后台统计。
推荐系统-算法。
分表-分库。
proxy-redis. mysql 区-页-块
跨行溢出式……
----------------------------------------
每个InnoDB表具有一个特殊的索引称为聚簇索引(也叫聚集索引,聚类索引,簇集索引)。
如果表上定义有主键,该主键索引就是聚簇索引。
如果未定义主键,MySQL取第一个唯一索引(unique)而且只含非空列(NOT NULL)作为主键,InnoDB使用它作为聚簇索引。
如果没有这样的列,InnoDB就自己产生一个这样的ID值,它有六个字节,而且是隐藏的,使其作为聚簇索引。
表中的聚簇索引(clustered index )就是一级索引,除此之外,表上的其他非聚簇索引都是二级索引,又叫辅助索引(secondary indexes)。