1. MySQL 数据建模推荐规范:
1.1 合理使用 bigint(20) 数值类型:
类型: BIGINT
大小: 8 字节
范围 (有符号): (-9 233 372 036 854 775 808,9 223 372 036 854 775 807)
范围 (无符号): (0,18 446 744 073 709 551 615)
用途: 极大整数值
适用场景:
记录 IP 值, 记录手机号, 记录 ××× 件号, 记录其它证件号及 20 位以内的大数值数据.
手机号码: 11 位, 存 bingint 8 字节, 存 varchar 12 字节
××× 号: 18 位, 存 bingint 8 字节, 存 varchar 19 字节
IP 字串: 11-15 位, 存 bingint 8 字节, 存 varchar 12-16 字节
IP 操作技巧,'58.56.161.255' 对应 976790015 使用函数转换:
字符串转数值: select INET_ATON('58.56.161.255');
数值转字符串: select INET_NTOA(976790015);
1.2 字段设计的一般要求是:
a. 书写简洁, 意义可读, 不使用属于系统内码保留关键字, 必须带准确注释.
b. 使用小写字母与下划线组成.
c. 主键推荐用 id (identifier), 用于系统内部数据与索引组织结构的唯一性标识也可用着业务数据的唯一性标识.
主键注释 COMMENT 中可以推荐外健用名 xxx_id.
d. 是别的表的外健使用 xxx_id 的方式命名, 有推荐用推荐名称, 无推荐 xxx 可用外键原表名.
e. 字段类型选择要求, 业务上合理, 节约存储空间.
f. 字段不再强制要求非空, 使用 NULL 时程序上注意相应的处理. NULL 除了占有 NULL 标志位, 实际存储不占用任何空间.
1.3 表设计的一般要求是:
a. 书写简洁, 意义可读, 必须带准确注释.
b. 表名加前缀, 前缀定义用系统或模块的英文名称缩写.
c. 使用小写字母与下划线组成.
d. 引擎根据应用场景选择, OLTP 用 innodb,OLAP 推荐用 myisam.
e. 字符集推荐使用 utf8 或者 utf8mb4
f. 要进行容量预估, 数据量大要考虑分表策略这项应该与 DBA 共同协商完成.
1.4 索引设计的一般要求是:
a. 索引名称, 一般索引加前缀 idx_, 推荐唯一索引加前缀 uni_也可以统一用 idx_.
b. 联合索引名称, 推荐中间列名可以用缩写方式以减少名称长度, 也可以用完整名字.
例如: KEY `idx_status_ae_s2_it_ae_activityflag`
对应列:(`status`,`areacode`,`sid2`,`ifaudit`,`asktime`,`activityflag`)
c.
d.
2. MySQL 开发环境流程规范:
2.1 slow query 慢查询记录, 开发完成测试时进行检查.
- long_query_time = 1
- slow_query_log_file = ./slowquery.log
2.2 not using indexes 查询未使用索引的情况, 开发完成测试时进行检查.
log_queries_not_using_indexes = 1
信息进入 slow_query_log_file 文件.
来源: http://www.bubuko.com/infodetail-2596966.html