raw_table
),在PHP中运行一堆统计测量,并得出确切的140个数据点,然后我需要将它们存储在另一个表格中(我们称之为results_table
)。所有这些数据点都是非常小的整数(“40”、“2.23”、“-1024”是这些数据类型的好例子)。我知道mysql的最大列数相当高(4000+),但在性能何时真正开始下降方面存在很多灰色地带。
因此,在最佳性能实践方面有几个问题:
1)如果少列更好,则可以将这140个数据点分成20行,每行7个数据点,所有行都具有相同的“
experiment_id
”。但是,我总是需要拉取所有20行(每行有7列,加上id等),因此我认为这不比拉取140列的1行更好。那么问题来了:是将20行7-9列(所有行都需要一次性拉取)存储更好,还是将1行140-143列存储更好?2)考虑到我的数据示例(“40”、“2.23”、“-1024”是将被存储的数据类型的好例子),我认为
smallint
是结构类型。在性能方面还有其他反馈吗?3)欢迎提供关于mysql性能问题或技巧的任何其他反馈。
感谢您提前的帮助。
int
和int(1)
在大小上是相同的,即使用相同数量的字节进行存储(只有在启用zero-padding
时长度才有影响)。此外,如果数字不能为负数,则可以使用unsigned
。同时,您无法将浮点数(例如2.23
)存储在int
类型中。 - Amil Waduwawara