【发布时间】:2014-09-04 14:47:54
【问题描述】:
我是一个 mysql 新手,被交给了在 mysql 中创建表的任务 - 我们不知道列名或数据类型或数据类型的长度。我们从各种报告引擎中获取数据、xml、文件,并希望将其加载到此表中
有人告诉我,我可以将所有列设为varchar(512) 和utf-8,并且任何搜索的性能都不会受到影响。
列数可以是 10-200,即使我有一个 UI 允许某人实际设置正确的数据类型和长度,我觉得有人实际配置 200 列到正确的数据类型和长度
由于我没有太多要加载的数据,我无法确认我的经理对varchar(512) 和utf 8 的建议,因为某些字段仅包含名称和描述,所以我的问题是在这种情况下它是浪费空间当varchar(32) 或类似的东西可以工作时,将其标记为varchar(512)
mysql 5.5+ 上是否有有效的解决方法
【问题讨论】:
-
如果我查看文档,它指出我可以有 85 列
varchar(255)和utf -8。 dev.mysql.com/doc/refman/5.5/en/column-count-limit.html -
事实上,这很好。但更大的问题仍然是,这种方法有用吗?如果你不知道你会得到什么数据/结构,你怎么能计划你的模式呢?在这种情况下,您最好将接收到的数据/XML(或将其转换为 JSON)按原样存储在单个列中。或者您可以查看 NoSQL 解决方案。
-
它是一个制表符分隔文件,因此将其转换为 json 并存储。如果我必须执行搜索,那么唯一的方法就是序列化该字符串,然后对其执行搜索
标签: mysql