mysql创建表需要1秒_mysql创建表的注意事项

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审核。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值