Mysql架构优化
体系结构
分散式系统
概念解释
目前公司基本使用性能普通型 推荐使用MySQL 5.7.21
三大优化原则
- 索引隔离列
如果where表达式中有对列的计算 比如 where id=id+1 则id不是索引隔离列即不会走索引
- 计数表
用户点击表 hit_count 有一个cnt点击次数字段 对于任何更新该计数器的更新事务实际上是一个全局的互斥量 无并发行而言 此时给表添加一个slot字段 从而将更新请求分发到不同的slot上以提高并发性
更新
udpate hit_count set cnt=cnt+1 where slot=RAND() * 100;
统计
select count(cnt) from hit_count;
- 优化Count
查询id大于5的记录 select count(*) from 表 where id >5; 如果id>5的数量远远大于id<5的行数时 通过总行-id小于5的记录 效率就会有非常多的提高 select (select count(*) from 表) - count(*) from 表 where id < 5;
牺牲范式 提高性能