sql >> データベース >  >> RDS >> MariaDB

MariaDB10.6の新機能

    2022年1月の時点で、ClusterControl v1.9.2では最新バージョンのMariaDB(バージョン10.6)のサポートが導入されました。 2021年7月にリリースされたMariaDB10.6は、今後4年間、または正確には2026年7月までサポートされます。

    この投稿では、MariaDB10.6の主な機能を紹介します。

    アトミックDDL(データ定義言語) 最初に取り上げる機能はAtomicDDLです。定義上、「アトミック」とは、操作が成功してバイナリログに記録されるか、完全に逆にされることを意味します。 MariaDB 10.6.1以降、MariaDBは、操作の実行中にサーバーがクラッシュした場合でも、ほとんどをアトミックにし、残りはクラッシュセーフにすることで、DDLの操作の可読性を向上させました。 AtomicとCrash-safeはどちらも、まだ作業中のS3ストレージエンジンとパーティショニングエンジンを除いて、すべてのストレージエンジンで動作するように開発されました。

    このバージョンでは、ALTER TABLE、RENAME TABLE、CREATE TABLE、DROP TABLE、DROP DATABASE、およびそれらに関連するDDLステートメントがアトミック対応になりました。その他のAtomicDDL操作の完全なリストは、ここにあります。新しいアトミックでクラッシュセーフな実装の優れている点は、MariaDBサーバーが、不安定な環境でも信頼できることは言うまでもなく、はるかに安定していることです。

    SQL構文

    SQL構文カテゴリに関して、いくつかの新機能が追加されました。最初に表示されるのは次のとおりです:

    SELECT ... OFFSET ... FETCH

    OFFSET句を使用すると、定義されたオフセットの後に到着する結果セットのセグメントのみを返すことができます。一方、FETCH句は、返される行数を制限します。単数のROWでも複数のROWSでも、結果に影響を与えないため、OFFSET句とFETCH句の後に両方を使用できます。

    スキップロック

    MySQLからインポートおよび適合されているため、この構文に精通している人もいるかもしれません。 SKIP LOCKEDを使用すると、SELECTまたはUPDATE操作を実行するときに、ロックされたROWSをスキップできます。これは、特に複数のユーザーがホテルの部屋、フライトシート、コンサートチケットなどの限られたリソースを予約できるようにするアプリケーションにとって、間違いなく便利な機能です。

    無視されたインデックス

    無視されるインデックスは、MySQL 8の「非表示のインデックス」機能に似ています。表示および維持されているがオプティマイザーによって使用されていないインデックスは、無視されたインデックスとして定義できます。これは、実際にインデックスを削除する前にインデックスを削除した場合に、どのサーフェスをテストするかをテストするときに非常に役立ちます。問題が発生した場合は、すぐに再度有効にすることができます(インデックスにIGNORED / NOT IGNOREDのマークを付けることで)。

    JSON_TABLE

    このテーブル関数もMySQLからインポートされ、JSONデータまたはドキュメントをリレーショナル形式に変換できます。このバージョンでは、MariaDBはMariaDBデータベースに保存されているJSONデータへのテーブルビューを有効にし、SQLを使用することで、すべてのクエリが通常のテーブルとして返されます。

    Oracleの互換性

    MariaDBは、PL/SQL互換性を追加したオープンソースデータベースの世界のパイオニアでした。 MariaDB 10.3以降、OracleからMariaDBへの移行を容易にするために、多くの構文と関数が追加されました。 MariaDB 10.6に関して、MariaDBをよりPL/SQL互換にするために導入された機能は次のとおりです。

    • FROM句(AS句なし)の匿名サブクエリは、ORACLEモードで許可されます

    • ADD_MONTHS()が追加されました

      • 指定された日付値から月を加算/減算する関数。

    • TO_CHAR()が追加されました

      • NUMBER、DATE、DATETIME、TIMESTAMPなどをパラメーターとしてサポートし、フォーマット/変換されたTEXT値を返します

    • SYS_GUID()が追加されました

      • MariaDBのUUID関数に似ています

    • MINUSはUNIONでEXCEPTにマップされます

    • ROWNUM関数は、現在のコンテキストで受け入れられている現在の行数を返します。

    レプリケーション、ガレラ、ビンログ

    このカテゴリでは、MariaDBはexpire_logs_daysのエイリアスの形式としてbinlog_expire_logs_secondsを導入しました。これは、それらのいずれかへの変更が自動的に他方に反映されることを意味します。さらに、binlog_expire_logs_secondsは1/1000000日の精度を受け入れます。これは、マスターでの大量の書き込みや、環境のディスク容量が限られている場合に非常に役立ちます。

    それに加えて、MariaDBはwsrep_modeシステム変数も導入しました。この変数は、BINLOG_ROW_FORMAT_ONLY、DISALLOW_LOCAL_GTID、REQUIRED_PRIMARY_KEY、REPLICATE_ARIA、REPLICATE_MYISAM、STRICT_REPLICATIONなどのデフォルトの動作の一部ではないWSREP機能を有効にします。

    システムスキーマ

    次の機能は、ビュー、関数、およびプロシージャのコレクションであるsys_schemaです。 sys_schemaがデータの解釈中に多くの点でDBAと開発者を支援することは間違いありません。そこから多くの情報と診断情報を収集することができます。 sys_schemaは、パフォーマンスの問題のトラブルシューティングだけでなく、リソースの効率的な管理にも使用されます。ありがたいことに、これはMariaDB10.6で利用できるようになりました。

    情報スキーマ

    このカテゴリに新しく追加された機能は、INFORMATION_SCHEMA.KEYWORDSおよびINFORMATION_SCHEMA.SQL_FUNCTIONSです。 KEYWORDSテーブルには約694行のMariaDBキーワードが含まれ、SQL_FUNCTIONSテーブルには約234行のMariaDB関数が含まれます。これらの2つのテーブルを使用すると、必要に応じて、それらに関連する情報スキーマを取得できます。

    まとめ

    MariaDB 10.6で導入されたこれらの新機能に加えて、この投稿では説明されていない他の多くの改善が行われました。これらの機能の多くはMySQLから取得されましたが、これらの追加は依然としてユーザーにとって非常に有益です。

    前述のように、ClusterControlは現在MariaDB10.6をサポートしています。 ClusterControlを使用すると、ストレスのない最新のテクノロジーバージョンに簡単にアップグレードできます。 ClusterControlにまだ慣れていない場合は、30日間無料で評価できます。CCは必要ありません。

    最も人気のあるオープンソースデータベースのすべての最新ニュースとベストプラクティスを常に把握するには、TwitterとLinkedInでフォローし、ニュースレターを購読して最新情報を入手することを忘れないでください。


    1. 断続的なORA-12519(TNS:適切なハンドラーが見つかりません)エラーの原因

    2. SQLServerでスキーマバインドUDFを作成する

    3. SELECT INTO OUTFILEを使用するときにヘッダーを含めますか?

    4. null以外の値を持つテーブルから列を選択するにはどうすればよいですか?