2014-01-01から1年間の記事一覧
昨日のブログ記事のアクセスが想像以上に多く、とても驚いています。 MySQL/MariaDBとTransactdのInnoDBロック制御詳細 その1 - BizStationブログこの中で、REPEATABLE-READのトランザクションで、「ロックなし読み取りした値を元に更新してはいけない」と書…
今回から数回にわたり、TransactdのオペレーションとInnoDBにおけるロックについて解説します。 ロックについてはあまり良くわからなくてもとりあえずそれなりに動くアプリケーションは作れてしまいます。ですが、マルチユーザー環境でミッションクリティカ…
まもなくリリースされるTransactd 2.1は、2.0に比べてクエリーの速度が大幅に高速になります。 SQLより高速なクエリー 2.1ではJoinなどに関する処理を徹底的に見直し、SQLを凌ぐクエリーレスポンスを実現しました。TransactdのJoinを含むクエリーは、テーブ…
Transactdの開発過程でMySQLのパフォーマンス問題を調べてみたところ、ほとんどは「クエリーが遅い」といった問題のようでした。また、NoSQLデータベースへの移行理由としても「MySQLが遅いから」といった意見が結構あります。しかし、そのような理由でMySQL…
ほとんどのNoSQLは、容易なスケーリングと、アクセス頻度の高い処理の高速化を目的として使われます。今回はTransactd 2.0について、スケーリングがどのように実現されるか書きたいと思います。 1. なぜNoSQLか?(SQLの欠点) テーブル間の依存 スケールアウ…
function googleTranslateElementInit() { new google.translate.TranslateElement({pageLanguage: 'ja', includedLanguages: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element'); } Transactd 2.0 その1…
いよいよTransactd 2.0をリリースします。Transactd 2.0で新しくなったのは主に、 SQLライクなクエリーと結果セット 分散クエリー O/Rマッピング です。順番に詳しく紹介してゆきます。今回は「SQLライクなクエリーと結果セット」です。Transactdの従来のAPI…
しばらく日が空いてしまいましたが、相変わらず元気に Transactdに励んでいます。もうすぐTransactd 2.0 がリリースできそうですが、今回はC++コンパイラーのお話しです。 Transactdの基本ライブラリ開発はC++ですが、OSはWindwosとLinuxとMac OS X、コンパ…
2014/02/18に 第2回 MariaDB/MySQL コミュニティ イベント in Tokyo に行ってきました。 懇親会ではMontyさんと写真を撮ったり、色々なプラグインの開発者の方とお会いしたりでとても有意義な会でした。 MariaDBカンファレンスの感想 Montyさんがお見えにな…
その3は、select * from tablename where fieldname in(a,b,c...)です。 IN句による検索ですが、前回までと同じようにMySQLの処理とtransactdでの処理を見ていきましょう。 使用するインデックス解析 MySQLはまずSQL文を解析し、fieldnameフィールドをキー…
前回はselect * from tablename where fieldname = xxxのfieldnameをキーセグメントの先頭に持つインデックスがない場合を書きました。今回は、インデックスがある場合です。 MySQLでfieldnameフィールドのインデックスがある場合 今回の例は条件式が一つで…
その2はselect * from tablename where fieldname = xxxです。長くなるのでまずは2の1から。 なんとも簡単なSQL文ですが、テーブルの定義やデータの状況によって全くパフォーマンスが異なってきます。 使用するインデックス解析 MySQLはまずSQL文を解析し…
よく、SQLが遅いといった話を耳にしますが、サーバー側がどう処理して遅いのかまで書いたものがあまり見当たらないので、Transactdの開発経験を生かし、その使い方と合わせて書いてみたいと思います。 MySQLは、プラガブルデータベースエンジンという仕組み…