gpt4 book ai didi

mysql - 用于优化具有数百万行和大量列的表的选项

转载 作者:行者123 更新时间:2023-11-29 08:05:34 24 4
gpt4 key购买 nike

我即将向数据库中插入数百万行。拥有一张包含大量列的表比拥有多个包含大量行的表更实用还是更不实用?

数据看起来像这样:

  user   Jan01   Jan02   Jan03  ...
abcdef 459232 958394 319348
ghijkl 583941 813941 438923
mnopqr 681294 249393 934304
...

我想过按月将其分解,但最终会得到大约 60 个表,其中有数百万行。按年份分解仍然会使每个表产生约 365 列。如果我要达到这个程度,我想我可能只拥有一张表,因为这样可以节省空间并完全消除任何冗余(这在编程中总是一件好事)。

但是,拥有一张包含 ~365*~60 列的表听起来太疯狂了。

有什么功能或东西可以解决我不知道的问题吗?你会做什么?

最佳答案

你应该让 table 长而不是宽。

如果你制作表格:

user | date | data

那么你的查询将会快很多。

您还需要确保正确索引列。

最后,如果可以避免的话,不要使用 varchar 等 - 如果您知道列的长度并且它始终是 integer,那么请确保它是 Type :整数长度11(或其他),因为这将大大加快查询速度。

编辑

为了让你更容易理解你的表格应该是

user       | date       | data

abcdef Jan01 459232
abcdef Jan02 958394
abcdef Jan03 319438
ghijkl Jan01 583941
ghijkl Jan02 813941
ghijkl Jan03 438923
mnopqr Jan01 681294
mnopqr Jan02 249393
mnopqr Jan03 934304

这使您可以有效地查询数据,更轻松地插入和更新数据,这就是数据库的设计方式(长而不是宽)。

即使有 600 万行,它仍然比 60 列宽、100,000 行的表更快。

关于mysql - 用于优化具有数百万行和大量列的表的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22780863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com