【问题标题】:MySql InnoDB possible performance issuesMySql InnoDB 可能的性能问题
【发布时间】:2016-10-25 09:42:49
【问题描述】:

我是数据库新手,所以我有什么:

  • 一个表 ~75GB。 (InnoDB)
  • 10GB 的索引。
  • 高流量

在几个廉价的选择查询之后,我对这个巨大的表进行了插入查询和其他选择。

问题:每次插入都会重新索引,它可能会锁定表/行或什么?当同时有多个请求时,它会如何影响高流量?

【问题讨论】:

    标签: mysql database optimization query-optimization


    【解决方案1】:

    索引以增量方式更新。无需考虑这个过程;它发生在“背景”中。索引始终是最新的;也就是说,SELECT 将能够像找到旧行一样容易地找到新插入的行。

    如果您每秒获得超过 100 个INSERTs,让我们来看看细节。 (SHOW CREATE TABLE,实际INSERT等)

    同时,一千个点查询应该没问题。 (即被索引的单行的SELECT。)

    高流量...“廉价查询”通常非常快,以至于很少有两个同时运行。即使每秒一千个查询也可能很少同时运行多个查询。长时间运行的查询是另一回事。

    几十个主动运行的连接是“重”流量。此时,让我们看看运行时间最长的查询,看看我们是否可以加快它们的速度。

    根据 RAM 大小和innodb_buffer_pool_size 以及访问模式,您的大表可能或可能不受 I/O 限制。 UUID/GUID 索引因导致 I/O 迟缓而臭名昭著。您主要查看“最近”行的“日志”或“新闻”将具有“参考位置”,这会导致非常有效的缓存 - 因此表大小与 RAM 无关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 2012-08-24
      • 1970-01-01
      • 2017-05-07
      • 1970-01-01
      相关资源
      最近更新 更多