【面试】数据库进阶篇(三)优化

问题大纲

  • 一、MySQL优化角度
    • 1、MySQL优化角度有哪些?
  • 二、SQL优化
    • 1、SQL查询优化的步骤?(*3)
    • 2、SQL优化。
  • 三、表结构优化
    • 1、表结构优化
    • 2、水平拆分 VS 垂直拆分
  • 四、系统配置优化
  • 五、硬件优化
  • 六、参考

版本迭代历史:
V1.02021.01.03
V2.02021.09.21

一、MySQL优化角度

1、MySQL优化角度有哪些?

【面试】数据库进阶篇(三)优化_第1张图片

二、SQL优化

1、SQL查询优化的步骤?(*3)

1、show status查看数据库运行状况(连接、CURD执行等)。
2、慢查询日志+show processlist定位慢SQL
3、用explain/desc分析慢SQL并解决。

2、SQL优化。

详细可移步【数据库】SQL语句优化技巧,主要从索引、表分析、排序等方面入手。

三、表结构优化

1、表结构优化

1、合适数据类型;

  • 选择较小的数据类型解决问题;
  • 选择简单的数据类型;
  • 尽可能使用not null定义字段;
  • 尽量避免使用text类型,非用不可时时最好考虑分表。

2、表范式优化
遵循三大范式。

2、水平拆分 VS 垂直拆分

1、水平拆分 (ID合整)
特点:维度属性差异大、业务关联度低。

2、垂直拆分 (ID不变)
特点:稳定性、产出时间、热度。

主维表:更稳定、产出时间早、热度高;实效性高。
从维表:变化较快、产出时间晚、热度低。

四、系统配置优化

1、操作系统配置:增加TCP支持队列;
2、MySQL配置文件优化:Innodb缓存设置及缓存池个数。

五、硬件优化

1、硬件优化:CPU+内存+磁盘

六、参考

1、一分钟掌握数据库垂直拆分

你可能感兴趣的:(面试,数据库)