MySQLでNoSQL!?

MySQLでNoSQL!?

MySQL 5.6では完全に新しい試みとしてNoSQLのインターフェースを追加しました。MySQLのデータは通常SQL文を使って読み書きをしますが、このインターフェースではSQL文を使わないデータアクセスが可能となりました。MySQLのNoSQLインターフェースは分散キャッシュのmemcachedを活用しています。

memcachedはブログサイトのLiveJournalで利用が始まったキャッシュの仕組みで、現在では多くのWebサイトでMySQLと組み合わせて利用されています。単純にMySQLとmemcachedを組み合わせた場合では、データの取得時はアプリケーションからmemcachedにアクセスして対象のデータがキャッシュされているかを確認し、データが無い場合はあらためてMySQLにアクセスする必要があります。また、データの更新時には、永続化のためにはMySQLにアクセスし、さらにキャッシュを更新する処理をなんらかの形で実装する必要があります。

MySQL 5.6では、memcachedをMySQLサーバのプラグインとして同一プロセス内部で稼働します。データはInnoDBのテーブルに永続化されて、テーブルの複数の列をまとめてバリューとしてmemcachedプロトコルから扱うこともできます。同じデータに対してキーバリュー型のアクセスが適しているシンプルなデータアクセスをするアプリケーションからはmemcachedのプロトコルで、JOINなど複雑なデータを操作する場合には、MySQLサーバのプロトコルでSQL文を利用します。特にデータをまとめてロードする場合などのオーバーヘッドを最小限に抑えることができます。

図3:MySQLのNoSQL実装

memcachedのプロトコルでデータを追加更新する場合、「memcachedへのキャッシュのみ」、「InnoDBへの永続化のみ」、「キャッシュと永続化」を選択できます。また、MySQLサーバのバイナリログにはデータの変更が記録されるため、レプリケーションも可能です。

フィードバックをお待ちしています。「実験室」版

MySQL 5.6での開発中の機能などよりも、さらに実験的な機能を搭載したバージョンをlabs.mysql.comで公開しています。ある程度基本的なテストはしているものの、製品品質は本番環境での利用をおすすめできるレベルではありませんのでご注意ください。あくまでも最新の実装をいち早くお試しになりたい方のためのリリースです。

例えばInnoDBのページサイズを通常より小さな4KBや8KBにしたものや、レプリケーションの性能向上のためのBinlog Group Commit、バイナリログの内容をC++のアプリケーションから読み書きするためのBinlog APIライブラリなどがあります。サーバのUUIDと一連の番号を使用して、サーバを超えてユニークなトランザクション番号をトランザクションに割り当て、レプリケーションのマスタからスレーブへの切り替え時にログの確認作業を不要にするGlobal Transaction IDも現在はここでの公開です。

新しい技術に興味のある方はぜひお試しいただき、機能や品質についてフィードバックをいただければと思います。

次回は開発中のMySQL Cluster 7.2での改善ポイントついて解説します。

[編集部注] 記事タイトルを内容に合わせて修正致しました。(2011.11.29)

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30