5
MySQLに複数のコアを使用させることは可能ですか?
単一のコア以上を使用しない専用のMySQLサーバーをいくつか紹介しました。私はMySQLのDBAよりも開発者なので、助けが必要です セットアップ サーバーは、OLAP / DataWarehouse(DW)タイプのロードでは非常に大きくなります。 プライマリ:96GB RAM、8コア+シングルRAID 10アレイ テスト:4コアの32GB RAM 最大のDBは540 GBで、合計は約1.1TBで、ほとんどがInnoDBテーブルです Solaris 10 Intel-64 MySQL 5.5.x 注:最大のDBはOLTP DRサーバーから複製されたものであり、DWはこれからロードされます。完全なDWではありません。6か月から6週間で終了するため、OLTP DBよりも小さくなります。 テストサーバーでの観察 3つの個別の接続 それぞれに同時(および異なる)があります ALTER TABLE...DROP KEY...ADD INDEX 3つのテーブルには250万行、380万行、450万行があります CPU使用率は最大25%になり(1つのコアが最大になります)、それ以上はなりません 3回のALTERには12〜25分かかります(最小の1つに4.5分かかります)。 ご質問 複数のコアを使用するには、どのような設定またはパッチが必要ですか? つまり、なぜMySQLは利用可能なすべてのコアを使用しないのですか?(他のRDBMSと同様) レプリケーションの結果ですか? その他の注意事項 RDBMS「スレッド」とOS「スレッド」の違いを理解しています 私はどんな形の並列性についても尋ねていません InnoDBとスレッドのシステム変数のいくつかは次善の策です(クイックウィンを探しています) 短期的には、ディスクレイアウトを変更できません 必要に応じてOSを調整できます 最小のテーブル上の単一のALTER TABLEには4.5分かかります(IMOに衝撃を与えます) 編集1 innodb_thread_concurrencyは両方で8に設定されます。はい、間違っていますが、MySQLが複数のコアを使用することはありません innodb_buffer_pool_sizeはプライマリで80GB、テストで10GBです(別のインスタンスはシャットダウンされます)。これは今のところ大丈夫です。 innodb_file_per_table = ON 編集2 innodb_flush_log_at_trx_commit …