我有一个包含70+列的MySQL表。它很胖,但我不知道它是否足够胖,会影响性能。
或者,我可以连接一些值以将其减少到 30 左右,但更新可能更难。如果这么多列的性能不是问题,我不想更改结构。
目前,我计划插入 500 多行。它可以上升到,比如说,2000年。
我目前的设置:
Row #| field 1 | field 2 | ... | field 70+
------------------------------------------
ID1 | int | int | ... | int
ID2 | int | int | ... | int
:
:
:
我能想到的一种使桌子变薄的方法:
Row #| cat field 1 | cat field 2 | ...
------------------------------------------------------------------
ID1 |string containing int's from field 1 to 7| int's 8 to 14| ...
但操作的一部分是定期将一个字段的值移动到另一个字段。比如说field 1
搬到field 2
,我需要做的就是
UPDATE `table_name` SET `field 2` = `field 1`
WHERE `ROW #` = ID1;
但是拥有一个字符串需要更多的操作来分隔字符串,更改值,然后再次将它们输出回字符串中。我不知道这是否值得。
这个 70+ 列表可行吗?有没有更好的主意让桌子变薄?
我在MySQL命令之外使用Python,所以如果你有一些想法如何在Python中操作它,这将非常有帮助。
70 列很多,但这不应该是性能问题。对于使用数据库的人来说,这更有可能是一个人体工程学问题,在此基础上,我会尝试重新组织。
必须有某种方法可以将这 70 个字段按主题组织到几个链接表中,或者以其他方式构建这些数据。但是,如果不了解任何数据,就很难提出更具体的建议。
我绝对建议不要按照您的建议将值合并为文本字符串,以减少列数。你会后悔你做出改变的那一天,我会把钱放在上面。