ストレージエンジンの変更
- このリリースには、MariaDB ColumnStoreエンジン バージョン25.10.0が組み込まれています。
ベクトル検索
MariaDB Enterprise Server 11.8は、ネイティブのベクトル検索機能の拡張を継続し、セマンティック検索や推奨システムなどのAIを活用したアプリケーション向けにMariaDBを位置付けています。MariaDB Enterprise Server 11.4で既に利用可能な機能は以下のとおりです:
- 新しいデータ型: 多次元埋め込みを格納するためのVECTOR(N)。
- ベクトルインデックス:VECTOR INDEXを用いた効率的な類似性検索。
- 距離関数:
- L2距離の場合は、VEC_DISTANCE_EUCLIDEAN()。
- 角度の類似性の場合は、VEC_DISTANCE_COSINE()。
- 変換関数:
- Vec_FromText(json_array)とVec_ToText(vector_column)は、テキスト形式とバイナリベクトル形式間の変換を行います。
- インデックスチューニング用のシステム変数:
- mhnsw_max_cache_size、mhnsw_default_distance、mhnsw_default_m、mhnsw_ef_search。
MariaDB Enterprise Server 11.8に追加されました
- 距離関数:
- VEC_DISTANCE()は、インデックス設定に基づいて最適な距離関数を自動選択します。
- 同じ再現率でベクトル検索を30~50% (データによって異なる) 高速化する最適化。適用可能なベクトルに対して自動的に有効になります。ベクトルは、再現率の一部を速度と引き換えに徐々に切り捨てることができる場合に適用可能です。例えば、OpenAIが作成したマトリョーシカ埋め込みなどが適用可能です。
- MariaDBのHashiCorp Vaultに名前空間のサポートが追加されました。詳細は、the Hashicorp namespaces documentationをご覧ください。
- 監査ログバッファの書き込みが可能になりました。
インデックス、SQL関数、およびクエリの機能強化
- UUID生成:最新および時系列UUID用の新しい関数 UUID_v4()およびUUID_v7()。
- 複数テーブルDELETEの機能強化:ORDER BYおよびLIMITをサポートします。
- 単一テーブルDELETEの機能強化:インデックスヒントが使用できるようになりました。
- 新しいSHOW CREATE SERVER:SHOW CREATE TABLEと同様にサーバーオブジェクトを再作成します。
- DBMS_OUTPUT: DBMS_OUTPUT.PUT_LINE()によって送信されたメッセージは、送信側のサブプログラムまたはトリガーが完了するまでクライアントに送信されません。
パフォーマンスの向上
- ベクトル検索を30~50%高速化する最適化(詳細はベクトル検索のセクションをご覧ください)
- Ariaストレージエンジンのセグメント化されたキーキャッシュ
- aria_pagecache_segmentsシステム変数
- long char/varcharの統計情報を収集しないためのanalyze_max_lengthオプションを追加しました。詳細については、Skipping Long CHAR/VARCHAR Columnsをご覧ください。
データ型と互換性
- デフォルトでUTF-8:utf8mb4は、latin1と従来のutf8に代わるもので、絵文字を含む完全なUnicodeサポートを保証します。
- デフォルトの照合順序:utf8mb4_uca1400_ai_ciがUnicode文字セットの標準になりました。
- 拡張されたTIMESTAMP範囲:64ビットシステムでの上限が2106に増加されました。
- ROW型の機能強化:
- ROW型をストアドファンクションの戻り値として使用できるようになりました。
Oracleのような互換性のための%ROWTYPE、TYPE OF、RECORD(...) 宣言のサポート:DECLARE TYPE DeptRecTyp IS RECORD ( dept_id NUMBER(4), dept_name VARCHAR2(30), mgr_id NUMBER(6), loc_id NUMBER(4) );
- ROW型をストアドファンクションの戻り値として使用できるようになりました。
- トリガー:
- BEFORE UPDATE OF col1, col2は、トリガーの実行を特定の列の更新に制限します:
CREATE TRIGGER mytrigger BEFORE UPDATE OF col1, col2 ON t1 FOR EACH ROW …
- BEFORE UPDATE OF col1, col2は、トリガーの実行を特定の列の更新に制限します:
- SIGNAL SQLSTATE '02TRG'を使用すると、行操作をスキップできます。
- ストアドプロシージャ:デフォルトのパラメータ値をサポートするようになりました:
CREATE OR REPLACE PROCEDURE p1(param1 INT, param2 INT DEFAULT 1) - 連想配列:DECLARE TYPE .. TABLE OF .. INDEX BY
- caching_sha2_passwordプラグインを追加しました。詳細は、Authentication Plugin - SHA-256を参照してください。
System Versioned Tableの機能強化
- System Versioned Tableは、データの変更を監査するための強力な機能です。System Versioned Tableを有効にすることは、以下を使用することによってテーブルを作成するのと同じくらい簡単です:
CREATE TABLE contracts (...) WITH SYSTEM VERSIONING;または、以下を使用して既存のテーブルに対してこの機能を有効にします:
ALTER TABLE contracts ADD SYSTEM VERSIONING;どちらの場合も、データの有効期間とタイムスタンプを追跡するために、テーブル内に非表示フィールドが作成されます。DBA/DevOpsは、これらのフィールドを可視化したい場合があります。以下のタイプのステートメントによって、このような暗黙的なフィールドを明示的なフィールドに変更できるようになりました:
SET @@system_versioning_alter_history= keep; ALTER TABLE contracts ADD COLUMN rs TIMESTAMP(6) AS ROW START, ADD COLUMN re TIMESTAMP(6) AS ROW END, ADD PERIOD FOR SYSTEM_TIME (rs,re);
セキュリティ
- 新しい認証プラグイン - PARSEC:
- 楕円曲線暗号に基づいています。
- リプレイ攻撃と中間者攻撃を軽減します。
新しい認証プラグインを使用してユーザーを作成する方法の例:CREATE USER 'MariaDBUser'@'%' IDENTIFIED VIA PARSEC USING PASSWORD('MyPassword123!');結果は次のようになります:
SHOW GRANTS FOR MariaDBUser@'%';Grants for MariaDBUser@% GRANT USAGE ON *.* TO `MariaDBUser`@`%` IDENTIFIED VIA parsec USING 'P0:lhXyNv1cIxpB8EnTxR7ON7S7:1l3rWRW1/jw45yrvYXB8eh02wzk7lcJcz4CMc Ww2b+8'
- Unixソケットの機能強化:
- IDENTIFIED VIA UNIX_SOCKET AS 'user'による明示的なOSユーザーマッピングがサポートされるようになりました。
- 通常のOR構文を使用して、複数のOSユーザーを指定することもできます:
CREATE USER dba IDENTIFIED VIA UNIX_SOCKET AS 'jack' OR IDENTIFIED VIA UNIX_SOCKET AS 'jill';
レプリケーションとクラスタリング
- レプリケーション遅延監視の改善:
- SHOW REPLICA STATUSに以下が含まれるようになりました:
Master_last_event_time Slave_last_event_time Master_Slave_time_diff
- SHOW REPLICA STATUSに以下が含まれるようになりました:
- レプリケーションステータスの情報スキーマテーブル:
MariaDB [test]> SELECT Master_last_event_time,Slave_last_event_time,Master_Slave_time_diff FROM information_schema.slave_status\G *************************** 1. row *************************** Master_last_event_time: 2024-08-13 07:32:38 Slave_last_event_time: 2024-08-13 07:32:37 Master_Slave_time_diff: 1 - 新しいオプション – --slave-abort-blocking-timeout: タイムアウト後にブロックされている非レプリケーションクエリを強制終了します。
- Galera SST自動化:SSTユーザーが自動作成され、内部で管理されるようになりました。
- MDEV-35304をバックポート:CS-12.0 から {{Connects_Tried}} と {{Master_Retry_Count}} を追加
キーの管理
- KMSプラグインの機能強化:file_key_managementプラグインは、ファイルからだけでなくUnixソケットからもキーを読み取ることができるようになりました。
- ファイルキー管理暗号化プラグイン:キーローテーション機能が追加されました。さらに、新しい情報スキーマテーブル FILE_KEY_MANAGEMENT_KEYSが追加されました。
可観測性と情報スキーマ
- 一時ファイルのディスク容量制限:
- max_tmp_session_space_usageとmax_tmp_total_space_usageは、ディスク使用量の暴走を防ぎます。
- 新しいステータス変数:tmp_space_used、max_tmp_space_used。
- 新しい情報スキーマビュー:
- SLAVE_STATUSは、SQL経由でレプリケーションの遅延を表示します。
- USERSは、パスワードの状態と有効期限を監視します。
- SEQUENCESは、自動生成されたシーケンスをイントロスペクトします:
SELECT * FROM INFORMATION_SCHEMA.SEQUENCES\G *************************** 1. row *************************** SEQUENCE_CATALOG: def SEQUENCE_SCHEMA: test SEQUENCE_NAME: s_name DATA_TYPE: tinyint NUMERIC_PRECISION: 8 NUMERIC_PRECISION_RADIX: 2 NUMERIC_SCALE: 0 START_VALUE: 100 MINIMUM_VALUE: -127 MAXIMUM_VALUE: 126 INCREMENT: 10 CYCLE_OPTION: 0
- ANALYZE FORMAT=JSONの強化:
- r_index_rows、r_icp_filteredが含まれます。
- 診断用のスレッド命名:スレッド名がよりわかりやすくなりました。
- Galera情報スキーマ:新しいWSREP_BF_ABORTS情報スキーマテーブル。
- Galera情報スキーマ:新しいWSREP_THD_STATEおよびWSREP_THD_STATE_HISTORY情報スキーマテーブル。
- Galera情報スキーマ:新しいWSREP_CONNECTIONS情報スキーマテーブル。
- Galera情報スキーマ:新しいWSREP_CERT_KEYSおよびWSREP_CERT_KEYS_HISTORY情報スキーマテーブル。
PL/SQL
Oracle-stypeのINDEX BYテーブル(連想配列)のサポートは、以下の宣言構文を使用して、MariaDB 12.1からストアドルーチンと匿名ブロックにバックポートされました:
TYPE type_name TABLE OF rec_type_name INDEX BY idx_type_name;
説明:
- type_nameは、明示的データ型とアンカーデータ型(例: t1.col1%TYPE)をサポートします。
- INDEX BY句は、整数および文字列データ型をサポートします。
- rec_type_nameは、スカラーおよびレコードデータ型をサポートします。
実装では、以下の連想配列メソッドがサポートされています:
- FIRST
- LAST
- NEXT
- PRIOR
- COUNT
- EXISTS
- DELETE
ツールの改善
- mariadb-dump:
- --dir=
は、各データベースをそのサブディレクトリにダンプします。 - 並列ダンプとリストアをサポートします。
- 新しい --update-historyは、エクスポート中にrow_endのTIMESTAMPを変換します。
- --dir=
- mariadb-import:
- --dir=
は、ダンプされたディレクトリ構造からリストアします。 - 選択的なリストアのために、--database、--table、--ignore-database、--ignore-tableをサポートします。
- --innodb-optimize-keys:データの読み込みを高速化するためにインデックスの作成を遅延します。
- --dir=
- mariadb-test (mtr):
- mtrは、--enable_serveroutputオプションを指定して起動することで、DBMS_OUTPUTメッセージを有効にできます。
- mariadb (コマンドラインクライアント)
- 起動時にDBMS_OUTPUTメッセージを有効にする新しい --enable_serveroutputオプション。
- 実行時にこれらのメッセージを有効または無効にする新しい serveroutputコマンドとnoserveroutputコマンド。
Userstatプラグインの機能強化
- 改善された洞察:
- INDEX_STATISTICSのQUERIESによるインデックスの使用状況。
- クエリ操作数:ROWS_INSERTED、ROWS_UPDATED、KEY_READ_HITSなど。
- CLIENT_STATISTICSとUSER_STATISTICSの新しい統計情報。
- テーブルI/Oメトリクス:PAGES_ACCESSED、PAGES_READ_FROM_DISK。
プラットフォーム
エンタープライズライフサイクルに合わせて、MariaDB Enterprise Server 11.8.3-1は以下向けに提供されます:
- AlmaLinux 8 (x86_64、ARM64)
- AlmaLinux 9 (x86_64、ARM64)
- AlmaLinux 10 (x86_64、ARM64)
- Debian 11 (x86_64、ARM64)
- Debian 12 (x86_64、ARM64)
- Debian 13 (x86_64、ARM64)
- Microsoft Windows (x86_64) (MariaDB Enterprise Clusterを除く)
- Oracle Linux 8 (x86_64、ARM64)
- Oracle Linux 9 (x86_64、ARM64)
- Oracle Linux 10 (x86_64、ARM64)
- Red Hat Enterprise Linux 8 (x86_64、 ARM64)
- Red Hat Enterprise Linux 9 (x86_64、ARM64、PPC64LE)
- Red Hat Enterprise Linux 10 (x86_64、ARM64)
- Rocky Linux 8 (x86_64、ARM64)
- Rocky Linux 9 (x86_64、ARM64)
- Rocky Linux 10 (x86_64、ARM64)
- SUSE Linux Enterprise Server 15 (x86_64、ARM64)
- Ubuntu 22.04 (x86_64、ARM64)
- Ubuntu 24.04 (x86_64、ARM64)
- Microsoft Windows (x86_64) (MariaDB Enterprise Cluster (Galera) サポートなし)
- Red Hat UBI 8 (x86_64、ARM64)
- Red Hat UBI 8は、Enterprise Server Dockerイメージの一部です。MariaDB Enterprise Cluster (Galera)およびMariaDB ColumnStoreをサポートしません。
MariaDB Enterprise Serverの一部のコンポーネントは、一部のプラットフォームでのみサポートされます。詳細については、MariaDB Engineering Policiesをご覧ください。
MariaDB Enterprise Server 11.8.3-1 リリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/release-notes/enterprise-server/11.8/11.8.3-1
MariaDBプロダクト・サポート・サービス

MariaDBプロダクト・サポート・サービスは、MariaDBおよびその関連製品をご利用されているお客様へ、必要なソフトウェアや専門的なサポートなどを提供するサービスです。