Code前端首页关于Code前端联系我们

数据库规范,我熬夜写了一篇文章

terry 2年前 (2023-09-26) 阅读数 45 #数据库
  1. 数据库命名规范

    由小写字母、数字(一般不需要)和下划线组成。禁止使用“-”,名称准确,含义明确。

  2. 表格

  • 根据不同的业务类型,使用了不同的前缀,由小写字母组成和下划线
  • 长度在30个字符内控制❀备注备票prefixprefixdescriptionbusiness表tb_关系表tr_历史表ts_日志表 tl_xx_log 系统表、字典表、代码表 sys_临时表tmp_ 禁止使用 备份表 备份表视图view_ 避免
  1. engine

    使用标准 In nodb引擎(5.5后标配)

    支持事务,行级锁,在高竞争下有更好的恢复和更好的性能。

  2. 字符集--拔剑登上艾草????

    • 数据库和表的字符集统一,尽量使用UTF8(根据业务需要)♻ ❀ 更好的兼容性和统一字符集,可以避免字符集转换造成的丢失字符。比较之前必须转换几个字符集,这会导致索引错误
    • 关联UTF8和UTF8MB4字段会导致索引错误
    • 除特殊情况外,禁止建表。 )以减少因字符集不一致而导致性能问题的风险。
    • 无特殊要求,禁止指定表COLLATE -----

      COLLATE的主要功能是排序规则和检索规则。默认的utf8字符集是utf8_general_ci,默认的utf8mb4字符集是utf8mb4_general_ci。结尾的 ci 表示不区分大小写。

      COLLATE 会影响 ORDER BY 语句的顺序、WHERE 条件中按大小和字符数过滤的结果以及 DISTINCT、、 HAVING 的查询结果声明。例如:select * from test where name like 'A%',在utf8_bin字符集下,无法检索到'abc'字段,并且排序时abc和abc的顺序不一致。

    • 仔细选择 row_format

      Barracuda:新文件格式。它支持所有 InnoDB 行格式,包括新的行格式: COMPRESSEDDYNAMIC

      在 msyql 5.7.9 及更高版本的变量格式中,_b-row-format 确定为默认值 是 DYNAMIC

      db默认的innodb_file_format是barracuda,默认的innodb_default_row_format是dynamic;其中,COMPRESSED压缩比经测试仅为1/2,但读写有额外的CPU开销,且解压后按照原大小申请内存,在高竞争情况下可能会造成轻微的性能问题。

      动态行格式,列存储是否放在离页页上主要取决于行大小。它将把该行中最长的列放在离页上,直到数据页可以存储接下来的两行。如果 TEXT 或 BLOB 列

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门