タグ

sqlとデータベースに関するkarahiyoのブックマーク (3)

  • 新著が出ます:『SQL実践入門』 - ミックのブログ

    4月中旬ころになりますが、新著が出ます。SQLのパフォーマンスを主題にしたで、実行計画を読むことで、なぜこのSQLは遅いのか、あるいは速いのかをデータベースの内部動作まで把握して理解しよう、という趣旨です。 リレーショナルデータベースというのは、SQLという自然言語を模したインタフェースによって、低次のレイヤーを隠蔽する意図で作られたミドルウェアなので、当は実行計画などという手続レベルの世界をユーザが覗き見るのは、末転倒なところもあります。ただそうはいっても、現実にSQLが遅かったら原因を解析せざるをえないわけだし、大体当にブラックボックスにしたいなら、なんでどのDBMSも実行計画を見られる手段なんか用意してるんでしょうね不思議ですね、という理想と現実の狭間で悩むエンジニアの方々に少しでもベターな解に辿りつけるアプローチを提示できれば、と考えております。 以下まえがきと章立てです。

    新著が出ます:『SQL実践入門』 - ミックのブログ
  • MySQL 5.6 でのレプリケーション遅延は危険 : DSAS開発者の部屋

    MySQL 5.6 の検証中に MySQL 5.5 とは違うタイプのレプリケーション遅延を見つけたので紹介します。 MySQL のレプリケーションのおさらい MySQL のレプリケーションは次のような仕組みで動作しています。 マスターの更新トランザクションが binlog を書く スレーブの I/O スレッドがマスターに接続し、 binlog を取得し、 relaylog を書く. マスター側はスレーブからの接続を受け付けると(dump スレッド)、指定された場所から最新までの binlog を転送する binlog が追記されるのを待ってさらにスレーブに送る スレーブのSQLスレッドが relaylog を再生する MySQL 5.5 でよくあったレプリケーション遅延 マスターは並列してトランザクションを処理して、最終的にコミットした順で反映されれば問題ないようになっています。 一方、ス

    MySQL 5.6 でのレプリケーション遅延は危険 : DSAS開発者の部屋
  • MyBatis による SQL マッピング - 似非プログラマの覚え書き

    MyBatis とは MyBatis(旧名・iBatis) とは SQL 文等と Java オブジェクト間のマッピングを行う永続化フレームワーク(O/R マッピングライブラリ)です。マッピングを行うことにより、データベースへの接続方法の変更等があった場合でも、プログラムのソースコードを変更することなく、設定ファイル(XML 形式)を修正するだけで良くなります。 例えば、テーブルの構造はそのままに、テーブル名やカラム名の変更が行われたとしましょう。このとき、従前のやり方ではソースコードを修正する必要がありました。しかし MyBatis なら、マッピングの設定が書かれている XML ファイルを修正するだけで問題なく動作し続けます。 こうしたデータベース側のちょっとした変更に対してシステム側の修正をなるべく少なくするために MyBatis が導入されることが良くあります。 似たようなものとしては

    MyBatis による SQL マッピング - 似非プログラマの覚え書き
  • 1