sql >> データベース >  >> RDS >> Mysql

MySQL InnoDBが全表スキャンでMyISAMよりもはるかに遅いのはなぜですか?

    構成されたサーバーでの基本パフォーマンスは次のとおりです。

    • InnoDB:5.71秒
    • MyISAM:2.50秒

    これは悪くない 私の本では、しかしそれはいくつかの微調整を使用することができます。

    InnoDBのパフォーマンスは、いくつかの面で改善できます。

    innodb_buffer_pool_sizeを増やします

    • これは、最も重要な単一のInnoDB構成変数です。理想的には、MySQL専用サーバーで使用可能なRAMの70〜80%である必要があります InnoDB。
    • innodb_buffer_pool_sizeを増やす サーバー上で2Gに(このテストには十分すぎるほど)減少 InnoDBの4.60秒までの時間

    idを主キーにする

    • InnoDBは、PRIMARYKEYに基づいてデータをクラスター化します。宣言しない場合、InnoDBは暗黙的にランダムなものを生成します。シーケンシャル主キー(id)を持つことは、ランダムなキーよりも高速です。
    • サーバーのIDを主キーにする減少 InnoDBの3.80秒までの時間

    MySQL/InnoDBをアップグレードする

    MySQL 5.1以降では、MySQLはプラグ可能なストレージエンジンをサポートします。具体的には、新しいInnoDBプラグイン

    新しいInnoDBエンジンは、多くのパフォーマンスの強化を提供します。 この特定のタイプのクエリに大きな影響を与えます。

    注意:

    • MySQL 5.1.38の時点で、InnoDBプラグインはMySQLに含まれています
    • MySQL 5.1.43の時点で、InnoDBプラグインが含まれているだけでなく、MySQLのデフォルトエンジンです



    1. Mysqlサブクエリの順序

    2. mysqlの大きなテーブル毎回csvに基づいて行を更新

    3. タイムトラッカーからカレンダーまでの時間を日ごとに合計する

    4. MySQL:SQLクエリで関数を複数回使用すると、毎回再計算されますか?