【问题标题】:MySQL InnoDB simple SELECT query takes 0.2 secondsMySQL InnoDB 简单的 SELECT 查询需要 0.2 秒
【发布时间】:2021-10-28 16:08:10
【问题描述】:

我有一些桌子:

mysql> show columns from room_lesson;
+-------------------------+--------------+------+-----+---------+----------------+
| Field                   | Type         | Null | Key | Default | Extra          |
+-------------------------+--------------+------+-----+---------+----------------+
| id                      | int          | NO   | PRI | NULL    | auto_increment |
  ...
  <skipped>
  ...
| online_users_count      | int          | NO   |     | NULL    |                |
+-------------------------+--------------+------+-----+---------+----------------+

和简单的 SELECT 查询:

SELECT count(*) FROM room_lesson WHERE online_users_count = 2;

执行需要 0.2 秒。

room_lesson 表大小为 1.3 Gb。

如何加快查询速度?

【问题讨论】:

  • online_users_count添加索引

标签: mysql sql query-optimization


【解决方案1】:

对于这个查询:

SELECT count(*) FROM room_lesson WHERE online_users_count = 2;

最佳索引开启:

CREATE INDEX idx_room_lesson_online_users_count on room_lesson(online_users_count)

但是,索引对查询的加速程度取决于计数为 2 的频率以及表中行的宽度。应该会有改进,但可能不会很显着(比如 50% 而不是 99%)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多