表设计的过程中每列的类型, 像整数类型,指定是 tinyint,是不是可以直接指定 int, 字符类型,指定 varchar,是不是可以直接指定 text, 这种有意义吗? 反正占用内存的大小也是看列的实际值, 如果使用 tinyint 和 varchar 还可能会有存储值超出范围的情况
1
Carseason 2019-09-06 01:41:01 +08:00
加索引的时候超出长度是加不了的,text 这种类型就无法做索引
如果字段要合理一点最好还是限制一下类型的好, mysql 限制可以拒绝一部分溢出的数据,当然业务逻辑也要配合好 |
2
MonoLogueChi 2019-09-06 08:37:32 +08:00 via Android
你想过用 text 字段做检索是什么样的吗
|
3
340244120w 2019-09-06 08:50:36 +08:00 via iPhone
新版本我不清楚 反正之前 mysql 临时表里每个字段的内存占用和字段的限制长度是相关的
|
4
340244120w 2019-09-06 08:50:36 +08:00 via iPhone
新版本我不清楚 反正之前 mysql 临时表里每个字段的内存占用和字段的限制长度是相关的
|
5
340244120w 2019-09-06 08:54:35 +08:00 via iPhone
而且 int 类型那个长度只影响显示,也就是 int2 你存数字 99999 也能存,也能 select 出来,只用 gui 客户端查询只能显示两位。
Text 类型可以用最前面的 n 个字符作为索引,这倒不是问题 |
6
340244120w 2019-09-06 08:56:33 +08:00 via iPhone
3 楼说错了 内存占用和字段类型相关
|