ホームページ  >  に質問  >  本文

InnoDB に変換された 1,500 万行の MyISAM テーブルでの選択パフォーマンスを向上させる方法

MySQL バージョン 8.0.32-0ubuntu0.20.04.2

SELECT の実行を回避するのではなく、SELECT のパフォーマンスを向上させようとしています。

リーリー

1,500 万行を挿入します。

リーリー

変更テーブル big_table ENGINE=INNODB;

リーリー

**innodb_buffer_pool_size=8G (元は 128Mb) に設定します (MySQL を再起動します)**

ああああ

P粉388945432P粉388945432410日前429

全員に返信(1)返信します

  • P粉576184933

    P粉5761849332023-09-07 10:55:40

    Where 句を使用せずに MyISAM テーブルで SELECT COUNT(PK) または SELECT COUNT(*) を実行するのは、すべての行をカウントしないため非常に高速であるため、非常に特殊なケースであることがわかります。 InnoDB 上の同じクエリは文字通りすべての行をカウントするため遅くなります。

    ただし、インデックス付きフィールドで where 句が機能すると、InnoDB は MyIsam よりも優れたパフォーマンスを発揮するようです。これがユースケースの 99% のようです...

    返事
    0
  • キャンセル返事