ホームページ >データベース >mysql チュートリアル >MySQL Advanced 16 - メモリの最適化
1. MyISAMメモリの最適化
MyISAM ストレージ エンジンは、key_buffer を使用してインデックス モジュールをキャッシュし、インデックスの読み取りと書き込みを高速化します。 MyISAM テーブルのデータ ブロックについては、mysql には特別なキャッシュ メカニズムがなく、オペレーティング システムの IO キャッシュに完全に依存しています。
1. key_buffer_size の設定
key_buffer_size は、MyISAM インデックス ブロック キャッシュ パーティションのサイズを決定します。 MyISAM テーブルのアクセス効率に直接影響します。一般的な MyISAM データベースの場合、利用可能なメモリの 1/4 を key_buffer_size:
に割り当てることをお勧めします。
key_buffer_size=2G
2. read_buffer_size
MyISAM テーブルを頻繁に順次スキャンする必要がある場合は、read_buffer_size の値を増やすことでパフォーマンスを向上させることができます。ただし、read_buffer_size は各セッションに固有の値であるため、デフォルト値が大きすぎるとメモリの無駄が発生することに注意してください。
3. read_rnd_buffer_size
order by 句を使用した SQL など、ソートが必要な MyISAM テーブル クエリの場合、read_rnd_buffer_size の値を適切に増やすことで、そのような SQL のパフォーマンスを向上させることができます。ただし、read_rnd_buffer_size は排他的であるため、デフォルトの設定値が大きすぎるとメモリの無駄が発生することに注意してください。
2. InnoDB メモリの最適化
InnoDB はメモリ領域を I/O キャッシュ プールとして使用します。このキャッシュ プールは、InnoDB インデックス ブロックのキャッシュだけでなく、InnoDB データ ブロックのキャッシュにも使用されます。
1. Innodb_buffer_pool_size を設定します
変更量によって、InnoDB ストレージ エンジンのテーブル データとインデックス データの最大キャッシュ サイズが決まります。
2. innodb_log_buffer_size
InnoDB REDO ログ キャッシュのサイズを決定します。これにより、トランザクションがコミットされる前に InnoDB がディスクへの不必要なログ書き込み操作を実行するのを防ぐことができます。
3. 同時実行性に関連する MySQL パラメーターを調整します
1. max_connections を調整します
同時接続を改善します
2. thread_cache_size を調整します
データベースへの接続を高速化するために、MySQL は再利用のために一定数の顧客サービス スレッドをキャッシュします。mysql キャッシュ クライアント スレッドの数は、パラメータ thread_cache_size によって制御できます。
3. innodb_lock_wait_timeout
InnoDB トランザクションが行ロックを待機する時間を制御します。高速処理 SQL ステートメントの場合、大規模なロールバック操作を回避するために行ロック待機タイムアウトを増やすことができます。
注: 上記はすべて、MySQL ディレクトリの my.ini ファイルで書き換えられます。
上記は MySQL Advanced 16 - Memory Optimization の内容です。さらに関連する内容については、PHP 中国語 Web サイト (m.sbmmt.com) に注目してください。