索引-80%优化处理mysql
mysql 索引-存储。redis
1.优化索引。算法
2.最优索引。sql
普通sql - 好的索引-最优索引函数
索引优势:--索引原本就是有序oop
1.1:减小扫描量mysql索引
1.2:避免排序+避免临时表产生优化
1.3:随机I/O变为顺序I/O 固定硬盘 ssd iops-每秒查询次数。.net
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)。