Mysql实例MySQL 请选择合适的列
发布时间:2020-12-24 11:35:40 所属栏目:MySql教程 来源:网络整理
导读:《Mysql实例MySQL 请选择合适的列》要点: 本文介绍了Mysql实例MySQL 请选择合适的列,希望对您有用。如果有疑问,可以联系我们。 思维导图 点击图片,可查看大图. MYSQL学习 介绍 ?情况:如果你的表结构设计不良或你的索引设计不佳,那么请你优化你的表结构设
MYSQL学习
?
?3、text
用于保存大量数据.
(1)InnoDB在它们较大的时候会使用“外部”存储区域来进行保存.――所以需要足够的外部存储空间来保存实际的值.
(2)排序方式不同于其他字符类型,不会按照完整长度进行排序,而只是按照max_sort_length规定的前若干个字节进行排序.
?
MYSQL学习
MYSQL学习
4、使用ENUM代替字符串类型
(1)ENUM列可以存储65 535个不同的字符串.
(2)以紧凑方式保存.根据列表中值的数量,把它们压缩到1到2个字节中.
(3)MySQL在内部把每个值都保存为整数,以表示值在列表中的位置.
(4)保留了一份“查找表”,来表示整数和字符串在表的.frm文件中的映射关系.
(5)ENUM字符列是固定的,添加、删除字符串须使用ALTER TABLE.
(6)使用案例:权限表中使用ENUM来保存Y值和N值.
?使用方法:
MYSQL学习
? ? ? ? ? ? ??MYSQL学习 MYSQL学习在对enum列使用order by的时候,是按数字排序的,而不是字符串排序.MYSQL学习 MYSQL学习日期和时间类型MYSQL学习 DATETIME:保存大范围的值.封装格式:YYYYMMDDHHMMSS.――与时区无关,使用8字节存储空间.TIMESTAMP:保存自1970年1月1日午夜(格林尼治标准时间)以来的秒数.――使用4字节存储空间.MYSQL学习 ?? ?经验交谈 ? 1、我们在为列选择数据类型的时候,不仅要考虑存储类型大小,还要考虑MySQL如何对它们进行计算和比较.例如:MySQL在内部把ENUM和SET类型保存为整数,但是在比较的时候把它们转换为字符串. ? 2、我们要在相关表中使用同样的类型,类型之间要精确匹配,包括诸如UNSIGNED这样的属性. ? 3、混合不同的数据类型会导致性能问题,即使没有性能问题,隐式的类型转换也能导致难以察觉的错误. ? 4、选择最小的数据类型要考虑将来留出的增长空间.如,中国的省份,我们知道不会有成千上万个,因此不必用INT.TINYINT就足够了,它比INT小3字节. ? 5、整数通常是最佳的数据类型,因为它速度快,并且能使用AUTO_INCREMENT. ? 6、要尽可能避免字符串做为列的数据类型,因为它们占用了很多空间并且通常必整数类型要慢.MyISAM默认情况下为字符串使用了压缩索引,这使查找更为缓慢. ? 总结 ? 若有错误,望请大侠指教一、二,不胜感激! ? 参考文献:《高性能MYSQL》 (编辑:温州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |