Skip to content

元ドキュメント: データ高圧縮率

高圧縮率ストレージ

従来の MySQL InnoDB エンジンと比較して、TDSQL Boundless は最大 3.81 倍の圧縮率を提供します。本ドキュメントでは、データベース移行や製品選定を検討しているユーザー向けに、ディスク容量の見積もり方法を説明します。

コアとなる優位性:TDSQL Boundless が高い圧縮率を実現できる理由

TDSQL Boundless は LSM 構造でデータを格納しています。LSM の Append-only 特性により、B+ ツリーのインプレース更新に起因する頻繁なランダム書き込みによるデータページのフラグメンテーションを回避しています。また、LSM のバックグラウンドコンパクション特性により、書き込みのたびにデータを圧縮するオーバーヘッドを回避し、圧縮がパフォーマンスに与える影響を大幅に低減しています。このため、TDSQL Boundless は MySQL InnoDB と同等のパフォーマンスを維持しながら、最大 3.81 倍のデータ圧縮率を達成できます。

カーネルの仕組みを理解したところで、次に実測データを確認します。TDSQL Boundless データベースと MySQL が同一データを格納した際のストレージ使用量を定量的に比較し、OLTP データモデルにおける高圧縮率の有効性を検証します。これにより、MySQL からの移行ユーザーに科学的なディスク容量計画のガイダンスを提供します。

テスト概要

テスト環境

項目説明
クラウドプラットフォームTencent Cloud
インスタンススペック16 コア CPU / 32GB メモリ / Enhanced SSD クラウドディスク 300GB

比較対象データベース

  • コントロール群:MySQL 8.0(InnoDB ストレージエンジン、デフォルト設定)
  • 実験群:TDSQL Boundless(高効率データ圧縮エンジン内蔵)

主要な設定

MySQL 8.0 InnoDB エンジンのデフォルト設定:

# MySQL InnoDB デフォルトパラメータ設定
innodb_file_per_table=ON
innodb_page_size=16K
# innodb_page_compression を有効化していない(大多数の本番環境のデフォルト状態を再現)
innodb_page_compression=OFF

テストデータセット

  • Sysbench ベンチマークテスト
  • TPC-C ベンチマークテスト

テスト計画

テストデータの準備

  • Sysbench ベンチマークテストSysbench テストを参考に、32 テーブルを初期化し、各テーブルに1,000万件のレコードを挿入。
  • TPC-C ベンチマークテストTPC-C テストを参考に、1,000 Warehouses で初期化。

テスト結果とデータ分析

ストレージ使用量の比較(単位:GB)

データセットMySQL 8.0 (InnoDB)TDSQL Boundless
Sysbench72.6GB36.77GB
TPC-C(1000 Warehouses)77.8GB43.5GB

データ圧縮率の比較(MySQL を基準 100%)

データセットMySQL 8.0 (InnoDB)TDSQL Boundless
Sysbench100%約 50.64%
TPC-C(1000 Warehouses)100%約 55.91%

移行ガイド:ディスク容量計画の推奨事項

MySQL から TDSQL Boundless への移行を検討し、移行先データベースのディスク容量を見積もる場合は、以下のガイドラインに従ってください。

ステップ1:MySQL のディスク使用状況を確認する

MySQL インスタンスにログインし、以下のコマンドで合計データサイズを確認します:

sql
SELECT table_schema AS 'Database',
       ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS 'Size(GB)'
FROM information_schema.TABLES
GROUP BY table_schema;

ステップ2:業務シナリオに基づいて圧縮係数を選択する

MySQL のソース側の業務データタイプ推奨計画係数
一般的な OLTP 業務(注文、ユーザーなど)MySQL 容量の 50% で計画
ログ、監視、時系列データMySQL 容量の 30% で計画
データウェアハウス、レポート分析(AP)MySQL 容量の 30% で計画

ステップ3:目標ディスク容量を計算する

必要なディスク容量 ≒ ソース側の MySQL 容量 × 計画係数

Tencent Cloud プロダクトドキュメント