Skip to content

Instantly share code, notes, and snippets.

@gam0022
Last active October 16, 2016 06:13
Show Gist options
  • Save gam0022/c29d7c46e88cc52a072a to your computer and use it in GitHub Desktop.
Save gam0022/c29d7c46e88cc52a072a to your computer and use it in GitHub Desktop.
ISUCON5予選 再挑戦

SQLとnginxの周りのチューニングだけでISUCON5予選突破する

2015/10/19 10:00 頃

  • インスタンスを立てる
  • 初期設定
# bashにする
$ sudo chsh isucon
Changing the login shell for isucon
Enter the new value, or press ENTER for the default
	Login Shell []: /bin/bash
	
# 不要なサービスを止める
$ sudo apt-get purge apparmor iptables
	
# 鍵作る
$ ssh-keygen

設定ファイルのバックアップ

/etc/my.cnf が読みこまれなくてハマる

初期ベンチ

友達一覧の N+1 を解消

友達の人数は COUNT で取る

entries.title を追加

INSERT INTO entries の修正漏れでしばらくハマる。 ここまでで、 1350.6

レコードの存在確認には EXISTS を使う

SELECT COUNT(one) AS cnt FROM relations WHERE (one = 3181 AND another = 1284) が気になった。 SELECT EXISTS(SELECT * FROM relations WHERE (one = ? AND another = ?)) にしたが、誤差しか変わらなかった。

footprints を REPLACE でいい感じにする。

やり方はこれと完全に同じ。 http://isucon.net/archives/45627361.html

これで、2205.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment