MySQLとPostgreSQLのRepeatable Read時の挙動の違いについて Tweet 2010/7/2 金曜日 matsui Posted in サーバ | 1 Comment » モバイルとは全く関係ないですが、自分のメモ代わりに記事にしてみたいと思います。 たまたまテストしていて、MySQLとPostgreSQLのRepeatable Read時の挙動の違いを見つけました。 AさんとBさんという二人のユーザが同時に一つのレコードを更新している場合です。 user_tblのuser_typeというカラムを「0」→「1」にアップデートしています。 分離レベルはMySQL、PostgreSQLともにRepeatable Readです。 Aさん Bさん mysql> begin; Query OK, 0 rows affected (0.00 sec) トランザクション開始 my
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
スナップショットを使えばとある瞬間のディスクやファイルシステムのデータをいつでも後から参照することができる。しかもスナップショットの作成は一瞬だ。スナップショット機能を活用すれば最強のオンラインバックアップソリューションが出来るだろう。 しかし、スナップショットでバックアップを取るなんて危険な操作じゃないのか?!と不安に思われる方もいらっしゃるかも知れない。MySQL Serverが稼働中にいきなりデータだけをとってくるのだから、そのような疑問を持たれるのは頷ける。しかし仕組みさえ分かればスナップショットによるバックアップは怖くないということが分かるはずだ。そこで、まずはスナップショットによるバックアップの仕組みについて説明する。スナップショットを取る際の要件は次の通りである。 全てのデータを単一のボリュームに置くこと。つまり、一回のスナップショット操作でバックアップが取れることだ。 ディ
MySQL 5.5がリリースされた。「えっ?!この前5.4をリリースしたばっかりでしょ?!まだ5.4すら使ってないよ!!」と驚かれた方はご安心を。これは開発リリースモデルが変更されたためで、MySQL 5.4はこれでいったん開発終了して今後の開発はバージョン5.5をベースにして継続されることになる。バージョン5.4も5.5も「マイルストーンリリース」(以下MR)という位置づけであり、GA(正式リリース)版ではない点に注意して頂きたい。MR版の位置づけは次のようなもの。 品質的にはRC(リリース候補)版と同レベル(従ってほぼ安定している) 3〜6ヶ月ごとに新しいバージョンが出る 新しいMR版では機能が追加されることになるが、RC版と同レベルまで安定した機能だけが追加の対象になる MR版へ追加する予定の機能については別のブランチで開発が進められる 12〜18ヶ月ごとにMRのうち一つをGA版へと
drop table if exists t; create table t ( iid int ,nid int ,bid binary(3) ,msg varchar(69) ,key (iid) ,key (bid) ) ENGINE=InnoDB; insert into t values (1,1,1,"ichi"),(2,2,2,"ni"),(3,3,3,"san") ,(4,4,4,"si"),(5,5,5,"go"),(6,6,6,"roku") ; なテーブルとデータで、2つ端末を用意して update しあいっこしてみます。 まず、これ↓は両方ともupdateが完了してスコっと返ってきます。行レベルロック++ begin; update t set msg = "t1" where iid = 1; と begin; update t set msg = "t2" wh
Webシステム開発において性能試験を行う場合、hp LoadRunnerやApache JMeterといったウェブブラウザをエミュレーションしてくれる負荷テストツールを用いるのが定番だと思います。そんななか、たまにデータベース単体での性能を測ってほしいと頼まれることがあるので、そうした便利なツールはあるのかなと思って調べてみました。 データベースに対する負荷テストツールは探すとたくさん出てくるのですが、案件で使用しているRDBMSに対応していなかったり、トランザクション仕様が希望と異なっていたり、微妙に作りが悪かったりと、ニーズに合致したツールはすぐには見つかりません。そんなときにこのエントリがツール探しの参考になればと思います。 pgbench 対応RDBMS:PostgreSQL 対応OS:Linuxなど 言語:C 作者:石井達夫氏 ライセンス:独自(BSDライセンスに近い) トランザ
データベースサーバを新規に増設するために、最新の MySQL を調査していたところ、現時点での公式な 5.0 系の最新版はなぜかバイナリが公開されていない 5.0.75 ということが分かりましたが、同時に Percona Inc. という会社が独自にパッチをあててビルドしている Percona MySQL というものがあることを知りましたので、実際に試しつつベンチマークをとってみました。 Percona は、MySQL Performance Blog を書いていることで有名です。 まず、Percona MySQL とは、Percona Lab によると次のような説明があります。 Percona builds binaries that contain recent versions of the MySQL database server, plus additional popular
Open source databases Learn how to set up Percona's open source solutions for your database needs. Pick your favorite technology to access our step-by-step guidance and documentation. Cloud-native databases Leverage the power of modern open source databases on the cloud with Percona solutions for PostgreSQL, MongoDB, and MySQL. Click to start your cloud-native databases journey with our documentat
tmaesakaさんがやってくれました。 ずいぶん前からSQLのベンチマークを測定するのに使いやすいプログラムないかなーと思ってました。個人的にはmysqlslapというのを使ってたのですが、幾らか気に入らない所があったりコマンドラインオプションが複雑で毎回 --help を読んだりしていました。余計な機能なんかなくて、指定したSQLを高速にくりかえしてくれる物が欲しいなぁって思ってたんです。 とあるIRCでこの前、tmaesakaさんから「いま作ってる」という話を聞いて、いろいろ要望を言ってたんですが、ついさっきチュートリアルが公開されました。速いw 名前はskyload。とても小さく、実装コードだと800行程度です。しかもオプションが少ないので使い方が単純です。試しに適当な INSERT の速度を測ってみました。 $ skyload --server=localhost --mysql
PBXTというストレージエンジンがある。これは、PrimeBase社によるストレージエンジンで、トランザクションをサポートした本格的なものである。(つまり、InnoDBやFalconの代替として使うことを目指したエンジンなのである。)PBXTは次のページからダウンロード可能だ。 http://www.primebase.org/ 上記のページにも書いてあるが、PBXTの特徴は次の通り。 MVCC(Multi Version Concurrency Control)トランザクションのサポートACID準拠行レベルのロックデッドロック検知外部キーのサポートWrite Once(追記型アーキテクチャ)BLOBストリーミング 最後の2つ以外はInnoDBと同じである。Write Onceとは追記型のアーキテクチャで、InnoDBのように独立したログが存在しないという意味である。(PostgreSQL
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く