首页 > 编程知识 正文

阿里数据库设计规范,数据库建设的基本规律

时间:2023-05-04 08:03:28 阅读:115023 作者:4083

另一方面,数据库命名约定1 )将数据对象名称小写,用下划线分割2 )使数据库名称可识别,不超过32个字符3 )临时库表以tmp为前缀,以日期为后缀4 )备份库表另外,以日期为后缀5 .存储相同数据的所有列名和列类型必须一致2, 数据库基本设计规范1 .所有表必须使用Innodb存储引擎2 .数据库和表的字符集统一使用UTF-8 3 .必须在所有表和字段中添加注释4 .可以有单个表的数据量大小

MySQL分区表分区表在物理上作为多个文件、在逻辑上作为一个表来慎重使用

如果您非常想使用,请仔细选择分区密钥,这样可能会降低分区之间的查询效率

建议使用物理表来管理大数据

6 .尽量进行冷热数据的分离,减小表的宽度即控制表的列数

减少磁盘I/o,确保热数据的内存缓存命中率

更好地利用缓存,避免读取不必要的冷数据

把常用的队伍排在一个表里

7 .禁止在表中创建保留字段的保留字段的命名很难具有名称识别的意义

无法选择适当的类型,因为保留字段无法确认保存的数据类型

更改保留字段类型将锁定表

8 .禁止在数据库中保存图像。 二进制数据(如文件)的正确方法是将图像或文件存储在相应的文件服务器上,而只在数据库中存储图像的位置信息

9 .禁止在线数据库压力测试10 .禁止从开发环境、测试环境直接连接到生产环境数据库3、索引设计规范1 .限制每个表的索引数,建议每张表索引不超过5个2 .每个innododd

不使用UUID、MD5、HASH和字符串列作为主键

主键建议使用自增加ID值

3 .将分区度最高的列配置在连接索引的最左侧,尽量将字段长度小的列配置在连接索引的最左侧

最常用的列位于联合索引的左侧

4 .避免创建冗馀和重复索引5 .对于频繁的查询,优先使用覆盖索引避免Innodb表对索引进行二次搜索

可以将随机IO更改为顺序IO以提高查询效率

6 .虽然不建议使用尽可能避免使用外键的外键约束,但必须对表和表之间的关联键进行索引

外键可以用于保证数据的参照完整性,但建议在业务端实现

外键会影响父表和子表的写入,从而降低性能

四.数据库字段设计规范1 .优先选择满足存储需求的最小数据类型,将字符串转换为数值存储

(inet_aton(255.255.255.255 )=4294967295 ) ) )。

(inet_ntoa ) 4294967295 )=‘255.255.255’)

2 .在非负数据中,优先使用无符号整数型,存储相对于有符号而无符号多2倍的存储区域

varchar(n )中的n表示字符数,而不是字节数

使用UTF8存储汉字Varchar(255 )=765字节

如果太长,会消耗更多的内存

3 .为了避免使用text、BLOB数据类型,建议将BLOB或text列分隔为不同的扩展表

文本或BLOB类型只能使用前缀索引

4 .为了避免使用枚举数据类型更改枚举值,需要ALTER语句

枚举类型的ORDER BY操作效率低,需要追加操作

禁止将数值用作枚举数值

5 .尽可能将所有列定义为NOT NULL 6。 使用TIMESTAMP或DATETIME类型的保存时间。 7 .财务相关金额类数据必须使用decimal型5、数据库SQL开发规范。 建议使用预编译语句进行数据库操作。 避免数据类型转换。 3 .合理利用存在的索引,而不是随意增加索引。 避免充分利用已经存在的索引

一个SQL只能使用复合索引中的一列来执行范围查询

使用左连接或不退出优化不连接操作

5 .程序必须连接到不同的数据库以使用不同的帐户,并禁止库间查询6 .要禁止使用select,必须使用select字段列表查询7 .不要使用子查询。 可以将子查询优化为join操作8 .不要使用过多的join相关表9 .减少与数据库的交互次数数据库适合批处理操作

通过组合多个相同的操作,可以提高处理效率

10 .使用in代替orin的值不应超过500个

in操作可以有效利用索引

11.orderbyrand ) )的随机排序禁止程序中获取随机值并从数据库中检索数据的方法

12 .在where节中,如果禁止列的函数转换和计算列的函数转换或计算,则以下索引不可用

weredate (创建时间)=‘2013 06 07’

是的,where createtime=‘2013 06 07’and createtime‘2013 06 08’

13 .如果使用UNION ALL而不是union union,则所有数据都将放入临时表中,然后重新运行

UNION ALL不再重新操作结果集

14 .分割复杂的音乐爱好者象,是多项wxdqt六、数据库操作行为规范超过1.100万行的批量书写操作,需要分多次操作2 .修改大表数据结构需要密切关注,涉及严重的表锁操作。 特别是生产环境令人无法忍受。 对于大表,使用pt-online-schema-change更改表结构

3 .如果达到了禁止向程序中使用的帐户授予super权限的最大连接数限制,则可以允许一个具有super权限的用户连接

4 .如果程序连接到数据库帐户,则根据最低权限原则,程序只能在另一个数据库中使用数据库帐户,而不能在库之间使用

程序使用的帐户原则上没有drop权限

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。