【问题标题】:Large Mysql Table Indeces大型 Mysql 表索引
【发布时间】:2014-04-07 05:22:27
【问题描述】:

我正在一个 MySQL 数据库中存储从 Web 源抓取的消息。该表非常简单,只有一个 INT id、JSON 消息和日期时间。我在 id 上有一个主索引,在日期时间上有一个索引。现在我意识到由于某种原因 mysql 操作非常缓慢。该数据库包含超过 2 亿行。

我使用的索引有问题吗?

我也在考虑每天对数据进行分区以提高性能,这是正确的吗?因为我只使用 JSON 文档,所以使用像 CoutchDB 这样的 NoSQL 数据库有什么好处吗?

而且表非常大(200GB)有没有办法使用压缩创建更紧凑的索引?

插入:每天超过 10M 选择:取决于系统。可能选择使用日期时间。选择将返回大约 60M 行。 更新:- 删除:-

【问题讨论】:

标签: mysql database indexing


【解决方案1】:

也许它与这张桌子无关。 如果你想知道女巫进程使mysql变慢,请使用以下命令:

show processlist;

看看时间列,越大的 mysql 越慢

【讨论】:

    【解决方案2】:

    您已经有 2 个可行的选择:

    • 按天(或按 nb 行)对表进行分区
    • 使用 nosql 数据库

    但这在很大程度上取决于您对 json 数据所做的事情,如果您只需要提取一些在 json 中具有某些特定属性的条目,那么我建议您使用 nosql,否则如果您只根据日期或 id 检索数据然后使用 mysql 分片。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 2022-12-31
      相关资源
      最近更新 更多