Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql中的动态列和数据类型_Mysql - Fatal编程技术网

mysql中的动态列和数据类型

mysql中的动态列和数据类型,mysql,Mysql,我是一名mysql新手,一直被交给在mysql中创建表的任务——我们不知道列名称、数据类型或数据类型的长度。我们从各种报告引擎获取数据、xml和文件,并希望将其加载到此表中 我被告知可以将所有列设置为varchar(512)和utf-8,并且任何搜索的性能都不会受到影响 列的#可以是10-200,即使我有一个UI,允许某人实际设置正确的数据类型和长度,我觉得对于某人来说,将200列实际配置为正确的数据类型和长度是非常困难的 由于我没有太多的数据要加载,我无法确认我的经理关于varchar(512

我是一名mysql新手,一直被交给在mysql中创建表的任务——我们不知道列名称、数据类型或数据类型的长度。我们从各种报告引擎获取数据、xml和文件,并希望将其加载到此表中

我被告知可以将所有列设置为
varchar(512)
utf-8
,并且任何搜索的性能都不会受到影响

列的#可以是10-200,即使我有一个UI,允许某人实际设置正确的数据类型和长度,我觉得对于某人来说,将200列实际配置为正确的数据类型和长度是非常困难的

由于我没有太多的数据要加载,我无法确认我的经理关于
varchar(512)
utf8
的建议,因为有些字段只包含名称和描述,所以我的问题是在这种情况下,当
varchar(32)
或类似的东西可以工作时,将其标记为
varchar(512)
是浪费空间


mysql 5.5+

上是否有一种有效的方法来解决这个问题,您确定应该使用mysql吗?如果数据在很大程度上是非结构化的,那么您可能需要考虑NoSQL数据库。
一旦数据进入MySQL,您将如何处理它?

如果我看一下文档,它说明我可以有85列
varchar(255)
utf-8
。事实上,这是一个很好的观点。但更大的问题仍然是,这种方法有用吗?如果您不知道将获得什么样的数据/结构,那么如何规划您的模式呢?在这种情况下,最好将接收到的数据/XML(或将其转换为JSON)按原样存储在一列中。或者您可以查看NoSQL解决方案。它是一个以制表符分隔的文件,所以将其转换为json并存储。如果我必须执行搜索,那么唯一的方法就是序列化该字符串,然后在ITA上执行搜索。显然,他们计划根据用户搜索条件执行某种类型的报告。基本上,他们希望将制表符分隔的文件中的数据存储在mysql表中,然后搜索,而不是搜索制表符分隔的文件。我确实建议使用nosql,但这不是一个可行的选择。在这种情况下,我想您没有太多选择。听起来他们好像在试图将非结构化数据强制放入数据库。因此,它不太“适合”也就不足为奇了。与其他评论一样,VARCHAR并不是在浪费空间。