タグ

ブックマーク / sh2.hatenablog.jp (17)

  • MySQLのロックについて - SH2の日記

    JPOUG> SET EVENTS 20140907 | Japan Oracle User Group (JPOUG)に参加して発表をしてきました。IIJさまのセミナルームは窓からの眺めがすばらしいですね。JPOUGの運営メンバのみなさま、会場を提供してくださったIIJのみなさま、当日お越しいただいたみなさま、どうもありがとうございました。 私のセッションでは「MySQLのロックについて」と題してネクストキーロックなどの説明をしました。プレゼンテーション資料と、調査のために作成したツールを公開します。 プレゼンテーション資料 (PDF) Lock Inspector 1.0 プレゼンテーション資料からリンクしているウェブサイトの一覧です。 MySQL Lists: mysql: Re: InnoDB's inner workings + checkpoints 過去記事の訂正 @kami

    MySQLのロックについて - SH2の日記
    aki77
    aki77 2014/09/15
  • MySQL 5.6 パラメータ検討会 - SH2の日記

    7月29日にMyNA(日MySQLユーザ会)会 2013年7月が行われ、Oracle ACE Directorの@sheeriさん、MyNA会長の@tmtmsさんに混ざって発表をしてきました。運営のみなさま、当日お越しいただいたみなさま、いつもありがとうございます。 Performance Schema - Sheeri Cabral (PDF) MyNA会2013年7月 に行って来ました - MySQLのプロトコル解説 - @tmtms のメモ 今回は@yoku0825さん、@yyamasaki1さんがライトニングトークをされました。@yoku0825さんアイスごちそうさまでした。 日々の覚書: MyNA会2013年7月に行ってきました 5分で作るMySQL Cluster環境 私は発表内容について懇親会でいろいろ宿題をもらってしまい、しばらく復習をしていました。ようやく修正が終わりま

    MySQL 5.6 パラメータ検討会 - SH2の日記
  • MySQL 5.0のプロダクトライフサイクルが終了 - SH2の日記

    あけましておめでとうございます。今年もよろしくお願いいたします。 新年最初から注意喚起ですが、2011年12月31日をもってMySQL 5.0のプロダクトライフサイクルが終了しました。今後MySQL 5.0に対して新たなバグ修正やセキュリティ修正は提供されませんので、現在MySQL 5.0を利用している方はバージョンアップを計画されることをおすすめいたします。 オラクル社による買収以降、ソフトウェア製品のサポートポリシーは以下のウェブサイトで確認できるようになっています。 Oracle Lifetime Support Policy for Oracle Software MySQL 5.0:2011年12月まで MySQL 5.1:2013年12月まで MySQL 5.5:2015年12月まで (Extended Supportは2018年12月まで) MySQL 5.0のプロダクトライ

    MySQL 5.0のプロダクトライフサイクルが終了 - SH2の日記
    aki77
    aki77 2012/01/02
  • INDEX FULL SCANを狙う - MySQL Casual Advent Calendar 2011 - SH2の日記

    2011年8月のkazeburoさんのエントリに対する解説記事です。結論から言うとkazeburoさんの案に賛成なのですが、日はどうしてそうなったのかというところを確認していきたいと思います。記事はMySQL Casual Advent Calendar 2011の17日目のエントリです。16日目はakira1908jpさんでした。 当時の内容を覚えていない方は、先にkazeburoさんのエントリをご一読ください。また、テストケースがGitHubに公開されていますのでカジュアルに再現試験をすることも可能です。 Covering Index と self-joinMySQL - blog.nomadscafe.jp kazeburo's gist: 1150842 - Gist 問題のSQLをチューニングするには、MySQLがインデックスに対してどのようにアクセスするかという点につ

    INDEX FULL SCANを狙う - MySQL Casual Advent Calendar 2011 - SH2の日記
    aki77
    aki77 2011/12/17
  • Scientific Linux/CentOS 6.0でMySQL InnoDB Pluginを利用する - SH2の日記

    先日CentOS 6.0がリリースされたので、色々試している方も多いと思います。MySQLについて、Scientific Linux/CentOS 6.0では派生元のRed Hat Enterprise Linux 6.0と同様、バージョン5.1.52が採用されています。このディストリビューション付属版のMySQL 5.1.52ですが、残念なことにInnoDB Pluginが無効化されてしまっています。 * Fri Jan 8 2010 Tom Lane <tgl@redhat.com> 5.1.42-4 - Sync with current Fedora build, including: - Update to MySQL 5.1.42, for various fixes described at http://dev.mysql.com/doc/refman/5.1/en/new

    Scientific Linux/CentOS 6.0でMySQL InnoDB Pluginを利用する - SH2の日記
  • MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記

    MySQLでテーブルへのカラム追加、インデックス追加やテーブルの再編成などを行うと、その間テーブルに共有ロックがかかってしまいます。そのためこれらのメンテナンス処理は、通常利用者の少ない深夜早朝帯にサービスを止めて実施する必要があります。日はそれを無停止、オンラインのままでできないかという話題です。 基的なアイデア メンテナンス対象の元テーブルをコピーして、作業用の仮テーブルを作ります 仮テーブルに対して、カラム追加などの変更を加えます その間、元テーブルに対して行われる更新処理について差分を記録しておきます 仮テーブルの変更が終わったら、記録しておいた差分データを仮テーブルに反映します 差分データの反映が終わったら、元テーブルと仮テーブルを入れ替えます これと似たようなことを考えた方は結構いらっしゃるのではないでしょうか。ただ、言うは易し、行うは難しです。整合性がきちんと取れるかどう

    MySQLでサービス停止のないALTER TABLEの検討 - SH2の日記
  • ServersMan@VPSでMySQL InnoDB Pluginをあきらめない - SH2の日記

    DTIの仮想専用サーバServersMan@VPSを借りてみました。 Entryプランはメモリが256MBでまあ足りるだろうと思っていたのですが、ServersMan@VPSではOpenVZという仮想化ソフトウェアを使っていて、なんとスワップの利用が禁止されているのだそうです。つまりなにがなんでも総メモリ使用量を256MB以下に抑える必要があります。ちょっと難しそうです。 とりあえずMySQL 5.1.45をインストールして、すべてデフォルトで起動するとこんな感じです。 # free -m total used free shared buffers cached Mem: 256 23 232 0 0 0 -/+ buffers/cache: 23 232 Swap: 0 0 0 # service mysql start Starting MySQL. SUCCESS! # free

    ServersMan@VPSでMySQL InnoDB Pluginをあきらめない - SH2の日記
  • MySQLのスロークエリログから一部を切り出して分析するパッチ - SH2の日記

    MySQLのパフォーマンスチューニングに欠かせないスロークエリログですが、このログは特別にlogrotateなどの設定をしない限り一つのファイルに延々と追記される形になっています。先日仕事で3年分ものスロークエリログを見ることがあって大変疲れたので、次回から楽をするためにスロークエリログから一部を切り出して分析するmysqldumpslowのパッチを書いてみました。 オリジナル版のmysqldumpslowはスロークエリログ全体を読み込みます。 $ mysqldumpslow -s t sandbox03-slow.log Reading mysql slow query log from sandbox03-slow.log Count: 2 Time=9223372036854.76s (-1s) Lock=0.00s (0s) Rows=0.0 (0), tpcc[tpcc]@loc

    MySQLのスロークエリログから一部を切り出して分析するパッチ - SH2の日記
  • MySQL 5.1.44リリース - SH2の日記

    出てます。今回は機能追加が1件、バグ修正が18件あります。バグ修正のうちパーティショニングに関するものが1件、レプリケーションに関するものが5件となっています。InnoDB PluginはMySQL 5.1.42、5.1.43から引き続きRC版の1.0.6となっています。 MySQL 5.1.44では設定パラメータが一つ追加されました。 binlog-direct-non-transactional-updates これはMyISAMなどトランザクションに対応していないテーブルに対する更新を、即座にバイナリログに書き出すパラメータです。これでいったい何が変わるのか、以下の例で確認してみましょう。 mysql> select * from test_i; +----+------+ | id | data | +----+------+ | 1 | 20 | | 2 | 40 | +----

    MySQL 5.1.44リリース - SH2の日記
    aki77
    aki77 2010/03/08
  • データベース負荷テストツールまとめ(2) - SH2の日記

    データベース負荷テストツールまとめの第2回です。 前回はTPC-Bベース、TPC-Wベースのものから6つのツールをご紹介しました。今回はTPC-Cベースのものについて見ていきたいと思います。 tpcc-mysql 対応RDBMSMySQL 対応OS:Linuxなど 言語:C 作者:Percona Inc. ライセンス:不明(ライセンスに関する記述がない) トランザクション仕様:TPC-Cベース URL:https://code.launchpad.net/~percona-dev/perconatools/tpcc-mysql tpcc-mysqlMySQLコンサル会社であるPercona Inc.によって開発されたベンチマークツールで、TPC-Cをベースとしています。TPC-Cの仕様やtpcc-mysqlについては以前のエントリで詳しく扱っているので、そちらをご覧ください。 tpc

    データベース負荷テストツールまとめ(2) - SH2の日記
  • データベース負荷テストツールまとめ(1) - SH2の日記

    Webシステム開発において性能試験を行う場合、hp LoadRunnerやApache JMeterといったウェブブラウザをエミュレーションしてくれる負荷テストツールを用いるのが定番だと思います。そんななか、たまにデータベース単体での性能を測ってほしいと頼まれることがあるので、そうした便利なツールはあるのかなと思って調べてみました。 データベースに対する負荷テストツールは探すとたくさん出てくるのですが、案件で使用しているRDBMSに対応していなかったり、トランザクション仕様が希望と異なっていたり、微妙に作りが悪かったりと、ニーズに合致したツールはすぐには見つかりません。そんなときにこのエントリがツール探しの参考になればと思います。 pgbench 対応RDBMS:PostgreSQL 対応OS:Linuxなど 言語:C 作者:石井達夫氏 ライセンス:独自(BSDライセンスに近い) トランザ

    データベース負荷テストツールまとめ(1) - SH2の日記
  • MySQL 5.1.41リリース - SH2の日記

    出ました。今回は機能の追加・変更が4件、バグ修正が62件あります。 MySQL 5.1.38から同梱されるようになったInnoDB Pluginですが、MySQL 5.1.41ではバージョンが1.0.5に上がり、ついにRC(リリース候補版)となりました。再掲になりますがInnoDB PluginはビルトインのInnoDBに比べて以下のような機能強化が施されており、非常に有用性の高いものです。そろそろ利用を検討しても良い時期に入ってきたのではないかと思います。 高速なインデックス作成。従来InnoDBCREATE INDEXはテーブルの再作成を伴っていました テーブルとインデックスの圧縮 (検証結果その1、その2) INFORMATION_SCHEMAによるロック競合の検出 (検証結果) CPUスケーラビリティの向上 (1.0.3から) バックグラウンドI/Oスレッドの増加 (1.0.4か

    MySQL 5.1.41リリース - SH2の日記
  • MySQL Connector/Jにおける大量INSERTのチューニング - SH2の日記

    ピンポイントチューニング講座です。まずは結果から。 このグラフは、以下のテーブルに50,000レコードINSERTしたときの処理時間を示したものです。性能に70倍以上もの差が出ているのはなぜか、見ていきたいと思います。 CREATE TABLE `loadtest` ( `id` int(11) NOT NULL, `data` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 方法1 ベースライン conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS); pstmt = conn.prepareStatement("insert into loadtest (id, data) values (?

    MySQL Connector/Jにおける大量INSERTのチューニング - SH2の日記
  • MySQLのベンチマークを用いたIntel X25-M SSDの評価 - SH2の日記

    X25-M、SSDで検索してくる方が非常に多いので、ブログ内のSSD関連記事をリストしておきます。 MySQLのベンチマークを用いたIntel X25-M SSDの評価 (記事) SSDの真の性能を引き出す MySQL 5.1.38 InnoDB Plugin (2009/09/07) 先週末IntelのSSD、X25-Mが突然7,000円ほど値下がりしたので、ついに我慢できず手を出してしまいました。初めてのSSD導入です。 SSDのベンチマーク記事は国内・海外問わずたくさんありますが、実際にデータベースを乗せて計測した記事はそれほど多くありません。そこで、先日ご紹介したtpcc-mysqlを用いてベンチマークテストを行ってみました。 データベースサーバ OS : Windows XP SP3 32bit CPU : Core2 Duo T7300 2.0GHz (EIST OFF)

    MySQLのベンチマークを用いたIntel X25-M SSDの評価 - SH2の日記
  • MySQL 5.1のmysqldumpslowで快速チューニング - SH2の日記

    MySQL 5.1のmysqldumpslowを使うとチューニングが楽になる!という話題です。 mysqldumpslowはもともとMySQLに付属しているツールで、スロークエリログを集計してくれるものです。これ自体はMySQL 5.1で特に変わったところはありませんが、スロークエリログ体の方が機能強化されているため、組み合わせるとなかなか便利になっています。MySQL 5.1におけるスロークエリログの主な機能強化は以下の三点です。 long_query_timeに1秒未満の値を設定できるようになった。 出力先を設定できるようになった。 これらの設定をオンラインで変更できるようになった。 これでどうなるかというと、MySQLの性能分析をしたいと思ったときに、サーバを止めずにその場で mysql> set global slow_query_log = 1; mysql> set glob

    MySQL 5.1のmysqldumpslowで快速チューニング - SH2の日記
  • MySQLで意図的にエラーログを出す方法 - SH2の日記

    logrotateなどの設定をしていて、動作確認したいなあと思ったときのTIPSです。 $ mysqladmin -u root debugこんなログが出ます。 Status information: Current dir: /var/lib/mysql/ Running threads: 1 Stack size: 196608 Current locks: lock: 0xa735d38: 〜 Alarm status: Active alarms: 0 Max used alarms: 2 Next alarm time: 0 Begin safemalloc memory dump: End safemalloc memory dump.ついでにOracle。マニュアルにはありませんが、dbms_system.ksdwrtで任意の文字列を出力できます。 SQL> exec dbm

    MySQLで意図的にエラーログを出す方法 - SH2の日記
    aki77
    aki77 2009/04/11
    log, 『$ mysqladmin -u root debug』
  • MySQL InnoDBのネクストキーロック おさらい - SH2の日記

    MySQLのInnoDBストレージエンジンは行ロックをサポートしています。しかしOracleと同じ感覚でアプリケーションを作っていると、思わぬところでデッドロックに出くわすことがあります。これはInnoDBのロック範囲がOracleよりも微妙に広いためです。 実際の例で確認してみましょう。 mysql> select * from t; +----+------+ | c1 | c2 | +----+------+ | 10 | a | | 15 | a | | 20 | a | | 25 | a | | 30 | a | | 35 | a | | 40 | a | | 45 | a | | 50 | a | +----+------+c1列は主キーになっています。1つめのセッションで以下のSQLを実行します。 mysql> set tx_isolation = 'repeatable-r

    MySQL InnoDBのネクストキーロック おさらい - SH2の日記
    aki77
    aki77 2009/03/17
    innodb
  • 1