2018/09/21 db tech showcase Tokyo 2018 https://www.db-tech-showcase.com/dbts/tokyo
どうも、今日も今日とて野毛で飲みながらブログを書いている@0kawaraです。 今日は、普段あまり意識してこなかったMySQLのInnoDBでのロックの振る舞いについて色々実験してみました。(もちろん、きっかは自分がドツボにはまったから) ちゃんと理解するためには「共有・排他的ロックとは」って話や、「行ロックってつまりインデックスレコードロックだよね」などの話とか理解する必要があるんですが、それは github.com をちゃんと一読してもらえれば十分かと思います。 (というか、これが問題なく読めて理解できる人はこの記事読む必要ない….) 以下は上のドキュメント含め関連する記事などを読んで自分でInnoDBの行ロック周りについて、というかSELECT FOR UPDATEについて理解を深めるために手元で実験したことのまとめです。 技術的にちゃんとした理解を深めたい人は最後にまとめた参考サイ
InnoDBでSELECT FOR UPDATEでセッションが溢れて、原因のpidはわかるけど、ロック取得しているSQLがなんとかとれないかなと調べてみた。 MySQL5.7以降であれば下のSQLでとれるかも。たぶんいけるはず。 SELECT lo.*, t.thread_id AS blocking_thread_id, GROUP_CONCAT(CONCAT('\n',LPAD('', 25, ' '),event_id,':',sql_text) ORDER BY event_id) blocking_thread_sqlinfo FROM (SELECT GROUP_CONCAT(CONCAT('\n',LPAD('', 25, ' '), waiting_pid, ':', waiting_query)) wait_pidlist, blocking_pid, MAX(sql_k
TPCベンチマークで実行計画と処理時間を比較してみた 前回まで、機能の比較を行ってきましたが、机上で機能だけ比較してみてもデータベースの良さは分かりません。同じデータで同じSQLを実行してみてどのような実行計画でどのような処理時間になるのか?を調べてみたいと思います。実行する処理について特定のお客様で使用した処理では、客観性が無いことと処理内容を公開出来ないので、ここではTPCベンチマークを採用することにしました。 TPCベンチマークとは、TPC(Transaction Processing Performance Council)という組織が客観的かつ検証可能な性能データを広めるために策定したベンチマークテストです。そのベンチマークテストにはTPC-C / TPC-H / TPC-R / TPC-Wなどがあり、昔から有名なのは、更新性能(業務系システムを想定したワークロード定義)を計るT
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く