数据库优化

一、基础规范

  • 用InnoDB存储引擎
    支持事务、行级锁、并发性好、CPU和内存缓存页优化利用率高
  • 禁止使用存储过程、视图、触发器、事件
    优秀框架是“解放数据库CPU,将计算移到服务层”,若并发大,这些功能很可能将数据库拖死。在业务层,可通过加机器就加性能
  • 禁止存大文件
    不灵活、浪费资源、格式转换故效率低

二、命名规范

  • 库名、表名、字段名:小写、下划线,不超32字符,见名如意,禁止拼音英文混用
  • 表名t_xx,唯一索引uniq_xx,非唯一索引inx_xx

三、表设计规范

  • 表列数小于30
  • 必须有主键:
    1、字符串不应该做主键
    2、若没指定主键,innoDB会用唯一非空字段代替
  • 禁止用外键,若需要在业务层控制
    外键导致表表之间耦合,update、delete都会涉及相关表,影响性能,甚至死锁。

四、字段设计规范

  • 字段设置not null,且提供默认值
    1、null列使得索引、值比较更复杂,优化难
    2、null使得表有空字段,数据处理性能降低
    3、mysql对null特殊处理,需要额外空间标识
    4、null操作有限制, 不能=、in、<、<>、!=等,只能is null 或 is not null
  • 尽量不用text、blob类型:浪费内存和磁盘,影响性能
  • 避免使用小数存储货币,因为容易数据对不上,要用整型。
  • 可能模糊查询的用varchar存错,如手机号,like “136%”
  • 禁止使用ENUM,用tinyint代替
    1、enum要做DLL操作
    2、enum实际也是整型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值