我有兴趣使用 MySQL 构建一个巨大的数据库(1 亿条记录),以包含 1 分钟间隔的股票数据。该数据库将包含 5000 只股票的数据,比如说 10 年。
两个问题:
(1) 过去,我有一个“插入速度慢”的问题——意思是,一开始插入速度还不错,但是随着表格被数百万条记录填满,插入速度变慢了(太慢了!)。当时我用的是 Windows,现在我用的是 Linux——这会有什么不同吗?
(2) 我知道有助于加快查询(数据检索)速度的索引技术。问题是,有没有办法加快插入速度?我知道可以在插入时关闭索引,但随后“构建”插入后的索引(对于数百万条记录!)也需要花费大量时间。有什么建议吗?
还有其他注意事项吗?在此先感谢您的帮助。
最佳答案
这取决于您需要什么类型的索引以及您如何生成数据。如果您对单个索引按时感到满意,请坚持下去,当您生成数据时,继续按升序插入(相对于您拥有索引的插入时间)。这样,插入期间所需的重新排序最少。此外,请考虑分区以优化您的查询。它可以显着提高性能。使用自增列可以帮助快速建立索引,但是如果自增列是唯一的索引,那么您将无法按时建立索引。确保使用 innodb 存储引擎以获得良好的性能。如果你在 Linux 上适本地调整你的数据库引擎并保持设计简单,它将顺利扩展而不会出现太多问题。我认为你所说的海量数据需求并不像最初看起来那么难构建。但是,如果您计划运行聚合查询(使用表连接),那么这就更具挑战性。
关于mysql - 庞大的 MySQL 数据库——该做什么和不该做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973071/