性能状态关键指标
QPS,Queries Per Second:每秒查询数,一台数据库每秒能够处理的查询次数
TPS,Transactions Per Second:每秒处理事务数
1. 什么是成本?
- I/O成本
表使用的MyISAM、InnoDB存储引擎都是将数据和索引都存储到磁盘上的,当查询表中的记录时,需先把数据或者索引加载到内存中然后再操作。从磁盘到内存这个加载的过程损耗的时间称之为I/O成本。 - CPU成本
读取以及检测记录是否满足搜索条件、对结果集进行排序等操作损耗的时间称之为CPU成本。
2 . 字段优化
- 尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT。
- VARCHAR的长度只分配真正需要的空间
- 使用枚举或整数代替字符串类型
- 尽量使用TIMESTAMP而非DATETIME
- 单表不要有太多字段,建议在20以内
- 避免使用NULL字段,很难查询优化且占用额外索引空间
- 用整型来存IP
3. order by优化
using filesort:有两种算法:双路排序,单路排序(根据IO次数)
数据库4.1版本之前:默认使用双路排序:扫描两次磁盘
- 从磁盘读取排序字段,在buffer缓冲区进行排序操作
- 扫描其它字段
数据库4.1之后:默认单路排序:一次性读取全部字段,在buffer区挑出排序字段进行排序。
如果数据量很大&