数据库优化

- 代码逻辑方面

1、尽量不要在数据库做运算;复杂运算移动到程序断CPU;尽可能简单应用MySQL

举反例:md5/Order by Rand()

2、控制表单数据量
  • 一年内的表单数据量预估:纯INT不超过1000W; 含CHAR不超过500W
  • 合理分表不超载:USERID、DATE、AREA…
  • 建议单库不超过300-400个表
3、保持表单身段苗条
  • 表字段数少而精:IO高效;全表遍历;表修复快;提高并发;alter table快
  • 单表字段数上限控制在20~50个
4、拒绝3B
  • 拒绝大SQL
  • 拒绝大事务
  • 拒绝大批量
5、平衡范式与冗余

在考虑效率、性能时候,可以适当牺牲范式、加入冗余
例如:我们的数据库表有类似于部门、部门名这种适合统一展示;在业务上也频繁只展示这两个字断,完全可在业务表里面直接加入部门名这一冗余字段

字段方面

1、用好数值字段类型

在这里插入图片描述

2、将字符转化为数字

在这里插入图片描述

3、优先使用枚举/set

在这里插入图片描述

4、避免使用NULL字段

在这里插入图片描述

5、少用并拆分TEXT/BLOB

在这里插入图片描述

6、不在数据库里存图片

在这里插入图片描述

索引建立方面

谨慎合理添加索引 在这里插入图片描述
字符字段必须建前缀索引

在这里插入图片描述

不在索引列做运算

在这里插入图片描述

自增列或者全局ID做INNODB主键

在这里插入图片描述

尽量不用外键

在这里插入图片描述

SQL方面

SQL语句尽可能简单

在这里插入图片描述

保持事务(连接)短小

在这里插入图片描述

尽可能避免使用SP/TRIG/FUNC

在这里插入图片描述

尽量不使用select *

在这里插入图片描述

改写or语句

在这里插入图片描述

避免负向查询和%前缀迷糊查询

在这里插入图片描述

减少count(*)

在这里插入图片描述
在这里插入图片描述

LIMIT的高效分页

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用UNION ALL 而非 UNION

在这里插入图片描述

分解连接保证并发

在这里插入图片描述

GROUP BY 去除排序

在这里插入图片描述

同数据类型的列值比较

在这里插入图片描述
在这里插入图片描述

Load data导数据

在这里插入图片描述

打散大批量更新

在这里插入图片描述

Know Every SQL

在这里插入图片描述

  • 默认规则方面(约定类规则)

    隔离线上线下

    在这里插入图片描述

    禁止未经DBA确认的字查询上线

    在这里插入图片描述

  • 永远不在程序段显示加锁

    在这里插入图片描述

    统一字符集为UTF8
    统一命名规范

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值