MySQL 8.0.35でのパフォーマンスの向上 (2023/11/27)
MySQL 8.0.35でのパフォーマンスの向上 (2023/11/27)
https://blogs.oracle.com/mysql/post/performance-improvements-in-mysql-8035
投稿者:Seema Sundara | Architect, MySQL HeatWave
MySQL 8.0.35でのパフォーマンスの向上
MySQLチームは最近、Community Editionよりも8.0.35バージョンのMySQL Enterprise Editionのパフォーマンスを大幅に向上させる変更を実装しました。
ベンチマーク
sysbenchは、特にMySQLのデータベース・ベンチマークに広く使用されているツールです。sysbenchの適応を使用して、MySQLデータベースで様々なOLTPワークロードを実行しました。この設定では、4つの異なるsysbenchテストが実行され、それぞれが特定のOLTPワークロード特性を取得します。
1.OLTP RO: これは読取り専用モードであり、UPDATE、DELETEまたはINSERT問合せは実行されません。問合せの組合せは、次のもので構成されます。
* 10 x POINT_SELECT
* 1 x SELECT_SIMPLE_RANGES
* 1 x SELECT_SUM_RANGES
* 1 x SELECT_ORDER_RANGES
* 1 x SELECT_DISTINCT_RANGES
2. POINT_SELECT: ポイント選択SQL問合せが多数あります。
3.OLTP RW: これは、読取りSQL問合せと書込みSQL問合せの両方を組み合せたものです。問合せの組合せは、次のもので構成されます。
* 10 x POINT_SELECT
* 1 x SELECT_SIMPLE_RANGES
* 1 x SELECT_SUM_RANGES
* 1 x SELECT_ORDER_RANGES
* 1 x SELECT_DISTINCT_RANGES
* 1 x UPDATE_KEY
* 1 x UPDATE_NO_KEY
* 1 x UPDATE_KEY
* 1 x INSERT
* 1 x DELETE
4.UPDATE_KEY: これには、索引を更新する多数のSQL問合せがあります。
方法
- データ・セット全体を保持するのに十分な大きさのInnoDBバッファ・プールが使用されました。
- sysbenchのデータは、それぞれ1,000万行の8つのテーブルで構成され、合計で8,000万行でした。合計データサイズは20GBでした。
- シナリオごとに、ウォームアップが実行され、続いて5分間のsysbenchロードが実行され、3回繰り返されてトランザクション/秒の平均が計算されます。
- テストは、64、128、256、512、および1024クライアント接続/スレッドで実行されました。
- ハードウェアは、Intel E5-2699 v4 CPU (44コア@ 2.20 GHz、88 CPUスレッド)を搭載した2ソケット・サーバーで構成されています。
- オペレーティング・システム: Oracle Linux 7.9
結果
OLTP RO
ワークロードはSELECT問合せのみで構成され、INSERT、UPDATEまたはDELETEは含まれません。
Enterprise Editionは、テストされたすべてのスレッド構成で平均24%の利益を得ています。
POINT_SELECT
ワークロードは、単純なポイント・ベースのSELECT問合せのみで構成されます。
Enterprise Editionは、テストされたすべてのスレッド構成で平均34%の利益を得ています。
OLTP RW
ワークロードは、読取り問合せと書込み問合せ(SELECT、INSERT、UPDATE、DELETE)で構成されます。
Enterprise Editionは、テストされたすべてのスレッド構成で平均26%の利益を得ています。
UPDATE_KEY
ワークロードは、索引を更新する問合せで構成されます。
Enterprise Editionは、テストされたすべてのスレッド構成で平均21%の利益を得ています。
まとめ
要約すると、これらのベンチマーク結果は、テストされた4種類のワークロードすべてにおいて、MySQL Enterprise Edition 8.0.35がCommunity Editionよりもパフォーマンスが大幅に向上していることを示しています。
免責事項: 実際の改善は、使用される特定のユーザー・ロード、データ、構成、ハードウェアおよびオペレーティング・システムによって異なります。つまり、ここで説明する改善は使用された設定に固有であり、これは他の場所で観察された結果と正確には一致しない可能性があります。
構成詳細
Data Set
Sysbench load. 8 tables, 10 million rows each. Total 80 million rows
Data Size 20GB. Data is fully cached in buffer pool.
Hardware
Oracle Linux server release 7.9
Kernel 5.4.17-2012.201.3.el7uek,x86_64
Memory 515.91GB
Intel® xoen® CPU E5-2699 v4 @2.20ghz
2 sockets, 44 cores, 88 CPU threads
MySQL Configuration
All configs are defaults, except those listed below.
[mysqld]
## Server ##
back_log=0
disable-log-bin
max_connections=1200
max_prepared_stmt_count=100000
log_error_verbosity=3
thread_cache_size=1200
## Innodb ##
innodb_buffer_pool_instances=16
innodb_buffer_pool_size=128G
innodb-change-buffering=none
innodb_io_capacity_max=12000
innodb_io_capacity=10000
innodb_log_files_in_group=16
innodb_log_file_size=1G
innodb_numa_interleave=ON
innodb_page_cleaners=16
innodb_read_io_threads=16
innodb_write_io_threads=4
innodb_undo_log_truncate=OFF
range_alloc_block_size=16384
Toolkit
sysbench-bmk
コメント
コメントを投稿