MySQL相关问题
以下笔记来自于该视频:https://www.bilibili.com/video/BV1KW411u7vy?p=20&share_source=copy_web
性能下降、SQL慢原因?
执行时间长,等待时间长
- 查询语句写的差
- 索引失效
- 关联查询太多 join (设计缺陷或不得已的需求)
- 服务器调优及各个参数设置(缓冲区、线程数等)
哪些情况下适合建立索引?
- 主键自动创建唯一索引
- 频繁作为查询条件的字段应该创建索引
- 查询中与其他表关联的字段,外键关系建立索引
- 单键/组合索引的选择问题(高并发下倾向创建组合索引)
- 查询中排序的字段建立索引
- 查询中统计或者分组的字段
哪些情况下不适合建立索引?
- 表记录太少
- 经常增删改的字段
- where条件用不到的字段
- 数据重复且分布均匀的不适合创建【比如:国籍、性别】
MySQL常见瓶颈
-
CPU:
CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候
-
IO:
磁盘I/O瓶颈发生在装入数据远大于内存容量的时候
-
服务器硬件的性能瓶颈:
top、free、iostat和vmstat来查看系统的性能状态
网友评论