有一个“胖”的MySQL表是一个好主意吗?如果没有,有什么好方法可以减肥呢?

时间:2016-02-18 02:26:53

标签: mysql

我有一个包含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 1field 2,我需要做的就是

UPDATE `table_name` SET `field 2` = `field 1`
WHERE `ROW #` = ID1;

但是有一个字符串需要更多操作来分隔字符串,更改值,然后再将它们重新输出回字符串。我不知道这是否值得。

这个70+列表是否可行?是否有更好的想法让表更薄?

我在MySQL命令之外使用Python,所以如果你有一些想法如何在Python中操作它,它会非常有用。

1 个答案:

答案 0 :(得分:1)

70列是很多,但它不应该是性能问题。对于使用数据库的人来说,更有可能是人体工程学问题,在此基础上我会尝试重新组织。

必须以某种方式将这70个字段组织成几个链接表,或者以其他方式构造这些数据。但是在不了解数据的情况下,很难提出更具体的建议。

我肯定会建议反对将值合并到文本字符串中,就像您提议的那样,以减少列数。你会在改变的那一天懊恼,我会把钱投入其中。