我有一个包含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中操作它,它会非常有用。
答案 0 :(得分:1)
70列是很多,但它不应该是性能问题。对于使用数据库的人来说,更有可能是人体工程学问题,在此基础上我会尝试重新组织。
必须以某种方式将这70个字段组织成几个链接表,或者以其他方式构造这些数据。但是在不了解数据的情况下,很难提出更具体的建议。
我肯定会建议反对将值合并到文本字符串中,就像您提议的那样,以减少列数。你会在改变的那一天懊恼,我会把钱投入其中。