Yakstは、海外の役立つブログ記事などを人力で翻訳して公開するプロジェクトです。
10年弱前投稿 修正あり

MySQLの新しいデータディクショナリー

MySQL 5.7.5-lab-ddで公開されているMySQLの新しいデータディクショナリー(オブジェクト定義の保存先)についての概要を翻訳。

原文
A New Data Dictionary for MySQL | MySQL Server Blog (English)
翻訳依頼者
0deae06ab5d86b39feeec2e23a30b88a
翻訳者
0deae06ab5d86b39feeec2e23a30b88a yoku0825
原著者への翻訳報告
未報告


免責事項

この翻訳は MySQL Server Blogの2014/09/28に公開された記事をユーザーが翻訳したものであり、Oracle公式の翻訳ではありません。

MySQLの新しいデータディクショナリー

  • 長い間、MySQLのデータディクショナリーはイケてないと言われてきた。Morganのブログ記事やMySQLのアーキテクチャーに関するStewart Smithのブログ記事みたいに、多くの人が「FRMファイルオワコン」と主張している。
  • 我々は新しく改善されたデータディクショナリーを設計して実装しているところ。その設計のゴールは、

    • データディクショナリーをトランザクションに対応したストレージの中に入れること。まずはInnoDB、他のストレージエンジンもそれに追随していく。
    • バラバラに保存されたデータディクショナリーを一箇所にまとめて保存すること。
    • 全てのテーブル定義情報は同じ方法で保存され、ディクショナリーオブジェクトのための統一されたAPIでアクセスするされること。
    • ファイルシステムの差による問題を解決すること。
    • キャッシュが効くようにAPIを作っておくこと。キャッシュの存在はAPIに隠されて見えないようにする。
    • ゆくゆくはレプリケーションの信頼性を向上させる目玉機能であるトランザクショナルDDLを使えるように準備すること。
    • Information Schemaをテーブル定義情報を格納したテーブルのビューとして扱うこと。Information Schemaのクエリーが最適化できるように。
    • ディクショナリー情報をシリアライズするAPIを提供すること。これは他のストレージエンジンとの共存や、冗長化を簡単にするため。
    • テーブル定義の更新をアシストするための、メタデータのバージョニングを追加すること。
    • ダンプ/リストアなしで、古いMySQLからデータディクショナリーを移行できる方法を提供すること。
    • 大きなデータセットを移動できるような仕組みを作ること。
  • http://labs.mysql.com で新しいデータディクショナリーの動作をプレビューすることができる。Gopal Shankarのエントリーでは、このラボリリースの内容について説明している。

  • Alexander NozdrinはOOW14で New Data Dictionary: An Internal Server API That Matters の話をする。

    • そのセッションの中では↓の絵のような説明がある予定だ。
      • 訳注: 図表はリンクしていないので、原文を参照してください
  • 新しいデータディクショナリーが使うスキーマ定義についてもっと詳しいことを知りたければ WL#6379を見て欲しい。WL#6380にはディクショナリーの内部APIの概要が書かれてる。テーブルAPI, ストアドプログラムAPIなどそれぞれのAPIが共通で使うコアAPIのリストWL#7284にある。WL#6382はテーブルオブジェクトに対するAPIが説明されている。

  • この記事で紹介されている内容は全て、マイナーチェンジされる可能性があって、今後アップデートされると思うので気をつけて。

次の記事
MySQLのレプリケーションでありがちな10の問題
前の記事
MySQLのrootパスワードを、無停止でリセットする

Feed small 記事フィード

新着記事Twitterアカウント