mysql 数据库表设计

2019-09-05 23:47:14 +08:00
 linwu

表设计的过程中每列的类型, 像整数类型,指定是 tinyint,是不是可以直接指定 int, 字符类型,指定 varchar,是不是可以直接指定 text, 这种有意义吗? 反正占用内存的大小也是看列的实际值, 如果使用 tinyint 和 varchar 还可能会有存储值超出范围的情况

1790 次点击
所在节点    问与答
5 条回复
Carseason
2019-09-06 01:41:01 +08:00
加索引的时候超出长度是加不了的,text 这种类型就无法做索引
如果字段要合理一点最好还是限制一下类型的好,
mysql 限制可以拒绝一部分溢出的数据,当然业务逻辑也要配合好
MonoLogueChi
2019-09-06 08:37:32 +08:00
你想过用 text 字段做检索是什么样的吗
340244120w
2019-09-06 08:50:36 +08:00
新版本我不清楚 反正之前 mysql 临时表里每个字段的内存占用和字段的限制长度是相关的
340244120w
2019-09-06 08:50:36 +08:00
新版本我不清楚 反正之前 mysql 临时表里每个字段的内存占用和字段的限制长度是相关的
340244120w
2019-09-06 08:54:35 +08:00
而且 int 类型那个长度只影响显示,也就是 int2 你存数字 99999 也能存,也能 select 出来,只用 gui 客户端查询只能显示两位。

Text 类型可以用最前面的 n 个字符作为索引,这倒不是问题
340244120w
2019-09-06 08:56:33 +08:00
3 楼说错了 内存占用和字段类型相关

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/598381

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX