タグ

ブックマーク / blog.kamipo.net (10)

  • MySQLのクエリの良し悪しはrows_examinedで判断する - かみぽわーる

    仕事やらなんやらでMySQLのクエリの良し悪しを判断する必要があるとき、EXPLAINの内容だけだとどのぐらい良くなったり悪くなったのか分からないので SET long_query_time = 0; してrows_examined (そのクエリでrows_sent行の結果を返すために何行に触ったのか)も一緒に提示するようにしている(少なくともMySQL 5.7時点ではrows_examinedはslow_query_logでしか確認できないはずperformance_schemaが有効ならevents_statements_historyやその仲間たちで確認できるとのこと*1 MySQL :: MySQL 5.6 リファレンスマニュアル :: 22.9.6 パフォーマンススキーマステートメントイベントテーブル)。 例: 上の例のBeforeは、もともとDBAが書いた温かみのあるSQLでO

    MySQLのクエリの良し悪しはrows_examinedで判断する - かみぽわーる
    kenjiskywalker
    kenjiskywalker 2018/03/22
    🙏
  • ISUCON6予選にチーム「それぞれの椅子」で参加した - かみぽわーる

    ISUCON6予選1日目にチーム「それぞれの椅子(kamipo, Yappo, kan)」で参加した(kanさんは予定があってリモートからの友情出演)。 結果からいうとスコア15万ぐらいで安定したとこでもう時間ないから触るのやめて再起動チェックだけやって終わろうって再起動したら3万ぐらいまでスコア下がって原因特定するには時間なさすぎて死んだ(最後6万ぐらいまでは回復したっぽい)。俺の屍を越えてゆく者へ言えることは、不測の事態にそなえて再起動チェックは時間に余裕をもって何度かやるべきということです。 結果は残念だったけど今回はとても楽しめた。これまでのISUCONではせっかく声をかけて集まってもらったのだからみんなのパフォーマンスを引き出さなければというプレッシャーがハンパなかったけど、みんな大人なんだから自分のパフォーマンスぐらい自分で発揮するやろって気持ちでやれたのがよかった。やっぽさん

    ISUCON6予選にチーム「それぞれの椅子」で参加した - かみぽわーる
  • MySQL と Unicode Collation Algorithm (UCA) - かみぽわーる

    utf8_unicode_ci に対する日の開発者の見解 - かみぽわーる で、日語が分かる人には utf8_unicode_ci のヤバさを感じてもらえたと思うんですけど、この挙動はドキュメントによると UCA というアルゴリズムによるものらしい。 MySQL implements the xxx_unicode_ci collations according to the Unicode Collation Algorithm (UCA) described at http://www.unicode.org/reports/tr10/. The collation uses the version-4.0.0 UCA weight keys: http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt. Currently,

    MySQL と Unicode Collation Algorithm (UCA) - かみぽわーる
  • ディスクのUUIDを調べる方法 - かみぽわーる

    Debian lennyのfstabを見ると /dev/sda1 / ext3 errors=remount-ro 0 1みたいに/dev/sda1とかでデバイスが指定されてるのだけど、UbuntuとかDebianでもsqueezeあたりだと UUID=04a6ba33-73ff-4f9f-a09b-199a83f73dd6 / ext4 errors=remount-ro 0 1みたいにUUID=...という感じでデバイスが指定されてる。 外付けUSBでHDD付けまくってるときやSATAをホットスワップで挿しまくってるときに/dev/sda1みたいな指定方法でmountしてると、へんな電波受信してひとりでに再起動したときや人間の手で故意に再起動されたときにデバイスの認識順が再起動前とちがうくて、前は/dev/sda1だったものが/dev/sdb1や/dev/sdc1になりかねないので、デ

    ディスクのUUIDを調べる方法 - かみぽわーる
  • MySQLユーザーのためのPostgreSQL対応表 - かみぽわーる

    毎回わからなくなってググってるから今度からここに追記していく。 MySQL PostgreSQL SHOW DATABASES; \l USE dbname \c dbname SHOW TABLES; \dt SELECT * FROM tblname\G \x on SELECT * FROM tblname; SELECT * FROM information_schema.processlist; SELECT * FROM pg_stat_activity; KILL <pid>; SELECT pg_terminate_backend(pid); KILL QUERY <pid>; SELECT pg_cancel_backend(pid); table / column の情報 MySQL PostgreSQL SHOW TABLE STATUS FROM dbname; わ

    MySQLユーザーのためのPostgreSQL対応表 - かみぽわーる
    kenjiskywalker
    kenjiskywalker 2014/10/27
    便利情報だ
  • 優勝したらあの子に告白することばかり考えていた #isucon - かみぽわーる

    ISUCON3選お疲れさまでした! うちのチームのことはだいたいgfxが書いてる通りなんですけど、おもに僕がやったこととか選後に振り返ってみたことを書いておきます。 予選後の教訓で、最初にちゃんとコードを読んで方針を決めようって話してたので、最初に全員でざっと構成とかコードとか初期状態でのベンチとか回してみて全体を把握してから昼に作戦会議。 そのときに僕が話した見解は このアプリケーションから何らかの方法で参照時の画像変換のボトルネックを取り除いたとき、次にボトルネックになるのは帯域になる なので理想的な状態から逆算すると5台でWANにトラフィックを吐く構成になってる必要がある 最悪、参照時にまったく変換しなくて済む理想的な高速化に失敗してすべての変更をrevertすることになっても、5台並べて参照時の画像変換して返せるようにできてれば単純に初期状態の5倍のCPUでスケールできるから5

    優勝したらあの子に告白することばかり考えていた #isucon - かみぽわーる
    kenjiskywalker
    kenjiskywalker 2013/11/14
    “これを外科医に例えると、腹開いてみてすごい末期だけどダメ元で手術してみて死んでしまいましたじゃなくて、手術で死なせるわけにはいかんからダメ元ならなにもせずに腹を閉じようの精神かもしれない。”
  • #mysqlcasual vol.5 で話してきたこと - かみぽわーる

    先日オラクルで開催された MySQL Casual Talks Vol.5 に参加してきました。 mysql-build よもやま話 ありがたいことにいつも発表の機会を頂いてるので、なにか新しいネタをと思ってるんですが今回ちょっとネタも余裕もなくて、それでも聴いてる人がちょっとでもへぇって思えるようなことをざっくばらんに話せたらいいなと思っていて ちょうどFacebook版MySQLmysqldumpを爆速にする話がタイムリーだったのでそれに絡めてInnoDBのFast Index Creationを狙ってリストアも爆速になる話をしようって流れで今回の発表を考えました。前者をmatsunobuさんのブログ、後者をsh2さんのブログと発表資料を使って説明させてもらいました。僕の発表資料にはURL貼ってあるだけなんで詳しくはおふたりの素晴らしいエントリーを参照してください。 Yoshinor

    #mysqlcasual vol.5 で話してきたこと - かみぽわーる
  • 簡単に手元でHTTPのファイルサーバ立てる方法 - かみぽわーる

    .zshrcにstatic_httpdって関数つくってる。 dotfiles/.zshrc at master · kamipo/dotfiles · GitHub function static_httpd { if type plackup > /dev/null; then plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root => ".")->to_app' elif type ruby > /dev/null; then if ruby -v | grep -qm1 'ruby 2\.'; then ruby -run -e httpd -- --port=5000 . else ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port => 5000, :D

    簡単に手元でHTTPのファイルサーバ立てる方法 - かみぽわーる
  • #cross2013 に行ってきた - かみぽわーる

    聴いたやつ。 HTML5 x セキュリティ 体系的に学ぶ安全な利用規約の作り方 継続的サービス改善のゲンバのハナシ 継続的システム運用のゲンバのハナシ 感想など 出張Shibuya.XSSでCD-ROMをイジェクトしたくならない人は今すぐ病院に行ってくださいで有名な@hasegawayosukeさんが登壇されるのを楽しみにしていたんですが、ノロで口からイジェクトしまくって欠席されたみたいで、その記事を書くのをやめて今すぐ病院に行って欲しかったです、残念でした…。 そのはせがわさんが言っていた好きな言葉があって 「その仕様を最も悪用できる方法を思いつくことが世界の平和の貢献につながる」 NetAgent Official Blog : 私がセキュリティの世界に挑戦した理由 ~はせがわようすけ~ 僕は世界の平和とまではなかなか言えないのだけど、僕と僕のまわりの平和ぐらいは守りたいし、世の中の悪

    #cross2013 に行ってきた - かみぽわーる
    kenjiskywalker
    kenjiskywalker 2013/01/22
    "ミドルウェアとかが安全に使える仕組みになって、あんま人間ががんばらなくてよくなればいいなと思うところです。" 良い
  • #isucon2 にて死す - かみぽわーる

    当日を振り返った翌日の感想はコチラ。 昨日は藤原組と山形組の抗争に巻き込まれて無残に死んだ #isucon2— Ryuta Kamizono (@kamipo) November 4, 2012 今回もチームやすべえとして@riywoくんに熱烈ラブコールを送ってたんですが、当日は飛行機の上ということで振られてしまったので、それぺちの@do_akiさんとRails高速化の@mirakuiさんまったく接点のない二人を誘って参加しました! 二人とも突然の誘いを快く受けてくれてありがとうございました!! 結果はというと、まずクエリのボトルネックをインデックス張ってつぶしたあたりまではよかったんですが、サイドバーのキャッシュの不整合を解決できずDBから引き直そうとしたところで致命的な設計ミスに気づいてしまって、せめて完走させてスコアは出そうってことでgit initした状態に戻してフィニッシュでした

    #isucon2 にて死す - かみぽわーる
  • 1