版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/c15158032319/article/details/79622470
数据库优化主要分三块:
- 服务器内核优化:此优化一般由系统运维人员完成
- 数据库配置参数优化:此优化需根据压力测试结果来调整参数
- sql语句及表优化:这是我下面要讲的
问题:,若是能够恰当的使用sql规则,便能极大提高系统的效率。那么如何实现sql语句和表的优化呢?
为了提高sql执行效率,有以下原则:
- 主键长度不要过长
- 固定长度字段请使用char或nchar类型
- 可有可无字段尽量设置一个默认值
- 避免在where子句中使用函数
- 多表关联时,优先使用join而非子查询,优先union all而非union
- 避免在sql语句使用 * 号,需要操作哪些字段就写哪些字段
- 为使用频率大的字段添加索引
- 当只要一行数据时使用limit 1,这样在找到一条数据后就会停止搜索
- 为每张表设置一个id作为主键,最好是一个int类型,并打上auto_increament标志
- 尽量使用enum替代varchar
- 尽量为字段设置not null
- 如果表中所有字段都是固定长度的,整个表会被认为是static和fixed-length,固定长度的表会提高性能
- 根据需求将表垂直分割,按列变成几张表,可以降低表的复杂度和字段数目
- 拆分大的delete或incert操作,因为这两个操作是会锁表的。
- 按实际情况将表水平分割,列越少的表,使用效率越高。
- 因为sql语句是从右往左执行,所以将使得查询结果集更小的条件放右边先执行
- 根据需求选择合适的存储