BizStationブログ

ビズステーション株式会社の公式ブログです。

2014-01-01から1年間の記事一覧

MySQL/MariaDB 知っておきたい REPEATABLE-READ の不思議

昨日のブログ記事のアクセスが想像以上に多く、とても驚いています。 MySQL/MariaDBとTransactdのInnoDBロック制御詳細 その1 - BizStationブログこの中で、REPEATABLE-READのトランザクションで、「ロックなし読み取りした値を元に更新してはいけない」と書…

MySQL/MariaDBとTransactdのInnoDBロック制御詳細 その1

今回から数回にわたり、TransactdのオペレーションとInnoDBにおけるロックについて解説します。 ロックについてはあまり良くわからなくてもとりあえずそれなりに動くアプリケーションは作れてしまいます。ですが、マルチユーザー環境でミッションクリティカ…

Transactd 2.1はさらに高速で低負荷に

まもなくリリースされるTransactd 2.1は、2.0に比べてクエリーの速度が大幅に高速になります。 SQLより高速なクエリー 2.1ではJoinなどに関する処理を徹底的に見直し、SQLを凌ぐクエリーレスポンスを実現しました。TransactdのJoinを含むクエリーは、テーブ…

MySQLからNoSQLへの移行に「ちょっと待った」

Transactdの開発過程でMySQLのパフォーマンス問題を調べてみたところ、ほとんどは「クエリーが遅い」といった問題のようでした。また、NoSQLデータベースへの移行理由としても「MySQLが遅いから」といった意見が結構あります。しかし、そのような理由でMySQL…

Transactd 2.0 その3 データベーススケーリング

ほとんどのNoSQLは、容易なスケーリングと、アクセス頻度の高い処理の高速化を目的として使われます。今回はTransactd 2.0について、スケーリングがどのように実現されるか書きたいと思います。 1. なぜNoSQLか?(SQLの欠点) テーブル間の依存 スケールアウ…

Transactd 2.0 その2 QueryBuilder で簡単NoSQLクエリー

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 その1 SQLライクなクエリーと結果セット

いよいよTransactd 2.0をリリースします。Transactd 2.0で新しくなったのは主に、 SQLライクなクエリーと結果セット 分散クエリー O/Rマッピング です。順番に詳しく紹介してゆきます。今回は「SQLライクなクエリーと結果セット」です。Transactdの従来のAPI…

C++ クロスプラットフォーム開発

C++

しばらく日が空いてしまいましたが、相変わらず元気に Transactdに励んでいます。もうすぐTransactd 2.0 がリリースできそうですが、今回はC++コンパイラーのお話しです。 Transactdの基本ライブラリ開発はC++ですが、OSはWindwosとLinuxとMac OS X、コンパ…

第2回 MariaDB/MySQL コミュニティ イベント in Tokyo に行ってきました

2014/02/18に 第2回 MariaDB/MySQL コミュニティ イベント in Tokyo に行ってきました。 懇親会ではMontyさんと写真を撮ったり、色々なプラグインの開発者の方とお会いしたりでとても有意義な会でした。 MariaDBカンファレンスの感想 Montyさんがお見えにな…

MySQL パフォーマンスとtransactd その3

その3は、select * from tablename where fieldname in(a,b,c...)です。 IN句による検索ですが、前回までと同じようにMySQLの処理とtransactdでの処理を見ていきましょう。 使用するインデックス解析 MySQLはまずSQL文を解析し、fieldnameフィールドをキー…

MySQL パフォーマンスとtransactd その2の2

前回はselect * from tablename where fieldname = xxxのfieldnameをキーセグメントの先頭に持つインデックスがない場合を書きました。今回は、インデックスがある場合です。 MySQLでfieldnameフィールドのインデックスがある場合 今回の例は条件式が一つで…

MySQL パフォーマンスとtransactd その2の1

その2はselect * from tablename where fieldname = xxxです。長くなるのでまずは2の1から。 なんとも簡単なSQL文ですが、テーブルの定義やデータの状況によって全くパフォーマンスが異なってきます。 使用するインデックス解析 MySQLはまずSQL文を解析し…

MySQL SQLパフォーマンスとtransactd その1

よく、SQLが遅いといった話を耳にしますが、サーバー側がどう処理して遅いのかまで書いたものがあまり見当たらないので、Transactdの開発経験を生かし、その使い方と合わせて書いてみたいと思います。 MySQLは、プラガブルデータベースエンジンという仕組み…