MySQL道普請便り
第132回 Internal Temporary Table(内部テンポラリテーブル)について[その2]
第129回 Internal Temporary Table
今回はその続きで,
今回も前回同様MySQL 8.
TempTableストレージエンジン
MySQL 8.
TempTableストレージエンジンの特徴として以下があります。
- 可変長データ型の効率的なストレージの提供
- バイナリラージオブジェクト型のサポート
- グローバルメモリでの管理
- mmapファイルによるオーバーフローメカニズム
それぞれについて簡単に紹介します。
以後,
可変長データ型の効率的なストレージの提供
まず,
これはInnoDBストレージエンジンにおけるCHAR型と同等の処理になってしまいます
バイナリラージオブジェクト型のサポート
次に,
グローバルメモリ領域での管理
第129回の記事で説明しましたが,
最大値はtemptable_
パラメータから設定可能で,
mmapファイルによるオーバーフローメカニズム
従来のインメモリテンポラリテーブルは,
それが,temptable_
であると,
temptable_
であると,
設定について
MySQL 8.
- インメモリテンポラリテーブル:TempTable ディスクテンポラリテーブル:TempTable
(デフォルト) - インメモリテンポラリテーブル:TempTable ディスクテンポラリテーブル:InnoDB
- インメモリテンポラリテーブル:Memory ディスクテンポラリテーブル:InnoDB
この中で,
ここからは筆者の個人の意見なので,
筆者の感覚では,
いくつかテストしたところ,
しかし,
- Bug #97920 Aggregation function [sum()] return random numbers
- Bug #98739 TempTable storage engine slow if mmap is required
- Bug #98782 Using TempTable engine for GROUP BY is slower than using MEMORY engine
- Bug #99136 TempTable wastes 1MB for each connection in thread cache
これらのバグはMySQL 8.
また,
それは1.の場合,temptable_
パラメータを超えるとmmapテンポラリファイルを作成します。その際に大きな内部テンポラリテーブルを作成するクエリがあると,
まとめ
TempTableストレージエンジンにより,
内部テンポラリテーブルについて,
バックナンバー
MySQL道普請便り
- 第139回 オンラインスキーママイグレーションツール gh-ostを使ってみよう[その2]
- 第138回 オンラインスキーママイグレーションツール gh-ostを使ってみよう[その1]
- 第137回 MySQLTunerを使ってチューニングの足がかりを見つけてみる
- 第136回 CHECK制約を利用してみよう
- 第135回 MySQL 8.0で追加されたoptimizer_switchのフラグについて
- 第134回 DDLと暗黙的なコミットについて
- 第133回 Partial Revokesによる権限の一部剥奪について
- 第132回 Internal Temporary Table(内部テンポラリテーブル)について[その2]
- 第131回 mysqldumpslowを使ってスロークエリログを解析してみる
- 第130回 クエリをプロファイリングしてみる
関連記事
- 第46回 MySQL Cluster 8.0.16 DMRリリースと開発者来日セミナー開催,PostgreSQLエンタープライズ・コンソーシアムが検証成果を公開
- 第42回 MySQL 8.0.14リリース,PostgreSQL商用ツールのPostgreSQL 11対応
- 第40回 「MySQL Innovation Day 2018 秋」「PostgreSQL Conference Japan 2018」開催
- 第38回 LOCONDO.jpやLINEでのMySQL最新導入事例,PostgreSQL 11ベータ4リリース,Cassandra(イベント情報のみ)
- 第36回 MySQL 8.0へのバージョンアップ方法,PostgreSQL 11ベータ2リリース,MongoDB 4.0 リリース