# 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 文件。