数据库规范设计

数据库基本设计规范
    命名规范
        表名称禁止使用mysql保留关键字
        表命名要能做到见名识义,并且最好不要超过32个字符
        表名必须小写并以下划线隔开
        临时表必须以tmp为前缀并以日期为后缀,备份表必须以bak为前缀并以日期为后缀
        存储相同数据的列名和列类型必须一致
    引擎选择
        5.6以后的默认引擎是Innodb引擎
    字符集
        数据库和表的字符集统一使用UTF-8
    注释
        所有表和字段都需要添加注释
    单表数据大小
        尽量控制单表数据量的大小,建议控制在500万以内
    分区表
        谨慎使用MySQL分区表
    减小表的宽度
        尽量做到冷热数据分离,减小表的宽度
    禁止在表中建立预留字段
    禁止在数据库中存储图片,文件等二进制数据
    禁止在线上做数据库压力测试

索引设计规划
    索引对数据库的查询性能来说是非常重要的不要滥用索引
    限制每张表上的索引数量,建议单张表索引不超过5个
    每个Innodb表必须有一个主键
    注意合理选择复合索引建的顺序
    避免建立冗余索引和重复索引
    对于使用频繁的查询优先考虑使用覆盖索引

        避免Innodb表进行索引的二次查找
        可以吧随机IO变为顺序IO加快查询效率
数据库字段设计规范
    优先选择符合存储需要的最小的数据类型 
    将字符串转化为数字类型存储
    INET_ATON('255.255.255.255')=4294967295
    INET_NTOA(4294967295)=‘255.255.255.255’
    对于非负数据采用无符号整型进行存储
    SIGNED INT -2147483648~214748368
    UNSIGNED INT 0-4294967295
    避免使用TEXT\BLOB数据类型
    建议BLOB或是TEXT列分离到单独的扩展表中
    TEXT或BLOB类型只能使用前缀索引
    避免使用ENUM数据类型
    尽量把所有字段定义为NOT NULL

数据库SQL开发规范
    避免数据类型的隐式转换
    充分利用表上已存在的索引
    程序连接不同数据库使用更不用的账号,禁止跨库查询
    禁止使用select * 必须使用select<字段列表>查询
    禁止使用不含字段列表的INSET语句
    避免使用子查询,可以把子查询优化为join操作
    避免使用JOIN 关联太多的表
    减少同数据库的交互次数
    使用in代替or
    禁止使用order by rand()进行随机排序
    where 从句中禁止对列进行函数转换和计算

    在明显不会有重复值时使用UNION ALL 而不是UNION
数据库操作行为规范
    超100万行要分批多次写操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值