跟同事理论:这个mysql 字段用什么好?
问题描述
一个数组序列化,大概长度不到一百,偶尔有200吧,不过很少几乎没,然后 同事用了char类型,然后用255个字节, 他说 速度快我觉得 这个表有其他类型 包括文本,时间,int等,作为一个表已经不是静态表了,动态表char类型速度是没区别的!所以我觉得用varchar 类型 255比较合适~ 节省点字节,现在数据库已经99M了 我擦~~
大家觉得如何?
问题解答
回答1:这个用哪个影响都不会太大。
char占用固定长度,在MyISAM引擎中,数据的物理结构上会连续一点,速度在某些场景下是会快一点,产生碎片会少一点。典型的空间换时间。
在InnoDB引擎中,影响不会太大,没什么好争论的。
现在MyISAM引擎基本没人使用了,InnoDB上char类型的使用会浪费更多的内存池空间。
经验之谈。InnoDB引擎如果是固定长度的就用char,比如32位md5的值存储就用char(32)基他用varchar。
回答2:经验之谈是
相对固定长度的字符一般用char,比如这个列绝大部分都是在200,有198,197的这种非固定长度,并且跨度较大的,会用varchar,比如一部分是200,还有一部分是2的这种
char一般会在效率等方面比varchar好一些
回答3:要知道char是固定长度,有多余的以空格填充,速度自然比varchar快,要说到字节,varchar对英文与汉字都是2个字节,而char对英文一个字节,汉字两个字节。当然char类型对数据的处理相对来说也要使用trim来消除空格。所以到底要使用什么还是要看你真正要追求的是什么。
回答4:速度快?网上看的?自己试验过?不想呵呵了,固定短字符用char,其他用varchar
回答5:用测试数据说话。跑个1个G数据写入查询更新,试试就知道了
相关文章:
1. android - 微信这个效果是怎么实现的2. html5 - chrome下的a标签download属性无法调出另存为的下载框3. javascript - nginx反向代理静态资源403错误?4. 自学,刚编了helloworld就失败了5. 为啥最大化个窗口还得找一堆理由?6. javascript - 我的站点貌似被别人克隆了, google 搜索特定文章,除了域名不一样,其他的都一样,如何解决?7. javascript - 在react中写行间样式的whiteSpace不生效8. javascript - jquery对象被定义成jquery变量后,怎么使用:gt这个(可能表达有问题)9. javascript - 求助一个关于indexedDB的问题10. python3.x - mongodb 显示不出中文,都是方块,该如何解决?

网公网安备