当前位置:Gxlcms > 数据库问题 > mysql创建表的注意事项

mysql创建表的注意事项

时间:2021-07-01 10:21:17 帮助过:25人阅读

1 库名,表名,字段名必须使用小写字母,"_"分割。 2 库名,表名,字段名必须不超过12个字符。 3 库名,表名,字段名见名识意,建议使用名词而不是动词。 4 建议使用InnoDB存储引擎。( InnoDB:支持事务安全的引擎,支持外键、行锁、事务是他的最大特点。如果有大量的update和insert,建议使用InnoDB,特别是针对多个并发和QPS较高的情况。) 5 存储精确浮点数必需使用DECIMAL替代FLOAT和DOUBLE。( float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,decimal在mysql内存是以字符串存储的,用于定义货币要求精确度高的数据。在数据迁移中) 6 建议使用UNSIGNED存储非负数值。(无负数则用unsigned可以提高范围) 7 建议使用INT UNSIGNED存储IPV4。( UNSINGED INT存储IP地址占用4字节,CHAR(15)则占用15字节。计算机处理整数类型比字符串类型快。) 8 整形定义中不添加长度,比如使用INT,而不是INT(4)。( int类型作为计算机最自然的类型,速度相比其他同类类型运算速度更快。不规定大小就是为了适应各类不同机器还有同样的效果) 9 使用短数据类型,比如取值范围为0-80时,使用TINYINT UNSIGNED。( 更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期也更少) 10 不建议使用ENUM类型,使用TINYINT来代替。(php是弱类型语言) 11 尽可能不使用TEXT,BLOB类型。( (1)索引排序问题,只能使用max_sort_length的长度或者手工指定ORDER BY SUBSTRING(column,length)的长度来排序

(2) Memory引擘不支持text,blog类型,会在磁盘上生成临时表

(3) 可能浪费更多的空间

(4) 可能无法使用adaptive hash index

(5)导致使用where没有索引的语句变慢 ) 12 VARCHAR(N),N表示的是字符数不是字节数,比如VARCHAR(255),可以最大存储255个汉字,需要根据实际的宽度来选择N。 13 VARCHAR(N),N尽可能小,因为MYSQL一个表中所有的VARCHAR字段最大长度是65535个字段,进行排序和创建临时表一类的内存操作时,会使用N的长度申请内存。 14 表字符集选择UTF8。( (1) 使用utf8字符集,如果是汉字,占3个字节,但ASCII码字符还是1个字节。 (2) 统一,不会有转换产生乱码风险 (3) 其他地区的用户(美国、印度、台湾)无需安装简体中文支持,就能正常看您的文字,并且不会出现乱码 d)ISO-8859-1编码(latin1)使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。即把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题,保存的是原封不动的字节流。 ) 15 使用VARBINARY存储变长字符串。 16 存储年使用YEAR类型。 17 存储日期使用DATE类型。(mysql会自动截取日期信息) 18 存储时间(精确到秒)建议使用TIMESTAMP类型,因为TIMESTAMP使用4字节,DATETIME使用8个字节。 19 建议字段定义为NOT NULL。(not null的效率比null高) 20 将过大字段拆分到其他表中。(执行效率更快) 21 禁止在数据库中使用VARBINARY,BLOB存储图片,文件等。( 采用分布式系统更高效) 22 表结构变更需要通知DBA审核。                                                              

mysql创建表的注意事项

标签:数据   ext   中文   迁移   用户   column   order   数据迁移   int   

人气教程排行