今年は予選なしで全員が一発本選なので、昨年に引き続き本選に参加です。
というわけで、今年も例年通り @matsuu、 @ishikawa84g と参加しました。
チーム名が「シン・ウー馬場ーイー2」から「ウー馬場ーイー222」になり新たなスタートを切りました。 222はチーム番号です。縁起が良いですね。
今年もとても楽しめました。運営のみなさんありがとうございました。
結果はまだわからないけど、最終スコアは 49,344 といまひとつ。
ワンチャン30位以内にならないかなーと希望的観測。
→(繰り上げがあり)30位でした!ギリで上位粗品圏内!
ISUCON13 受賞チームおよび全チームスコア : ISUCON公式Blog
役割分担はこれまたいつも通りこんな感じです。
- @ishikawa84g サイトやレギュレーションやコードやログやDiscordを見る情報官
- @matsuu バリバリ実装する前衛
- @netmarkjp 司令塔
ちなみに写真はソラマチにある蟻月のモツ鍋(ランチ)です。
今年はハナからGoで
毎年「今年こそRust」というもののなかなか踏み切れず。特に状況が改善したりしなかったので、今年はRustはハナから諦めてGoでやりました。
実装レベルの詳しいことは@matsuuが書いてくれると思うので、自分は別の観点で。
去年はDBを分割する決断ができず本選の結果が奮わなかったので、今年はDBを分割するか判断できるようツールを用意してみました。
netmarkjp/go-discover-sql-caller
コードの中からSQLを抽出して、どこでそれを呼び出しているか一覧にするツールです。 クエリー自体のhash値を併記しているので、DBのスローログで発見されたクエリーがどこにあるか発見しやすくなります。
関数呼び出しを追跡しているので、SQLを呼び出している関数の呼び出し元を辿ることができます(-notrace
をつければ定義箇所だけ)。
デフォルトはtextフォーマットだけど、tsvやjsonにもできます。
標準出力に出すから | vim -R - -c "set ft=sql"
とかでSQLを見るのも楽です。
スロークエリーログで問題のクエリーを発見→ツールで呼び出し元を発見→どう対応するか決める
という流れで活用できます。
だがしかし
...これを作って意気揚々と本番に臨んだものの、入力に1ファイルしか想定しておらず、今回は使えませんでした。
悔しかったので本選終了後にいじったところ、30分くらいで複数ファイルに対応できました。 AST触るのは始めてだったけど、優秀なChatGPTのおかげでなんとか動いているようです。
というわけで、来年はがんばろう。。。
なお終了後に改修した最新版だとこんな感じで使えます。 これは初期コードに適用してみたところ。
SELECT * FROM livestreams WHERE id = ?
(Checksum B83ADB51427F2D680B7655A83409ABA0
)が複数箇所で定義されているのがわかります。
あと fillLivecommentResponse
や fillLivecommentResponse
がいろいろ呼び出されていることがわかります。
❯ $(go env GOPATH)/bin/go-discover-sql-caller -dir webapp/go
Location Checksum SQL
getLivecommentsHandler:87 1248963BB76FF70D32F54FE5A47D1DFD SELECT * FROM livecomments WHERE livestream_id = ? ORDER BY created_at DESC
getLivecommentsHandler:107,fillLivecommentResponse:436 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
getNgwords:146 925017AE676DBA305B883A3F4E668C42 SELECT * FROM ng_words WHERE user_id = ? AND livestream_id = ? ORDER BY created_at DESC
postLivecommentHandler:191 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
postLivecommentHandler:201 6BFB2BE3E545ED01A56DD8BD604799F5 SELECT id, user_id, livestream_id, word FROM ng_words WHERE user_id = ? AND livestream_id = ?
postLivecommentHandler:233 200A4AF4256FE1C25C07A7EE374E7562 INSERT INTO livecomments (user_id, livestream_id, comment, tip, created_at) VALUES (:user_id, :livestream_id, :comment, :tip, :created_at)
postLivecommentHandler:244,fillLivecommentResponse:436 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
reportLivecommentHandler:285 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
reportLivecommentHandler:294 13344416982E8C400C42E6BB74FC7459 SELECT * FROM livecomments WHERE id = ?
reportLivecommentHandler:309 832203E623674A2EB51B7D6ED64865B8 INSERT INTO livecomment_reports(user_id, livestream_id, livecomment_id, created_at) VALUES (:user_id, :livestream_id, :livecomment_id, :created_at)
reportLivecommentHandler:319,fillLivecommentReportResponse:467 13344416982E8C400C42E6BB74FC7459 SELECT * FROM livecomments WHERE id = ?
reportLivecommentHandler:319,fillLivecommentReportResponse:470,fillLivecommentResponse:436 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
moderateHandler:362 32C65D4958BEA4CEA73D3C821590F1F4 SELECT * FROM livestreams WHERE id = ? AND user_id = ?
moderateHandler:369 8F83A27BBCDF7A390C591A281988D737 INSERT INTO ng_words(user_id, livestream_id, word, created_at) VALUES (:user_id, :livestream_id, :word, :created_at)
moderateHandler:385 46C3FEA6D24AAE22C3291EFD50FABAEF SELECT * FROM ng_words WHERE livestream_id = ?
moderateHandler:393 4BFAE7029DE99922D8C20681925FEE93 SELECT * FROM livecomments
fillLivecommentResponse:427 F15E5E09C27C92BE6ED2B586D171D68A SELECT * FROM users WHERE id = ?
fillLivecommentResponse:436 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
fillLivecommentReportResponse:458 F15E5E09C27C92BE6ED2B586D171D68A SELECT * FROM users WHERE id = ?
fillLivecommentReportResponse:467 13344416982E8C400C42E6BB74FC7459 SELECT * FROM livecomments WHERE id = ?
fillLivecommentReportResponse:470,fillLivecommentResponse:436 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
reserveLivestreamHandler:109 DCE9DBBA4B54B6C56ABB6CE74ED20DCB SELECT * FROM reservation_slots WHERE start_at >= ? AND end_at <= ? FOR UPDATE
reserveLivestreamHandler:115 12686C37E2C015F0AF48846765407261 SELECT slot FROM reservation_slots WHERE start_at = ? AND end_at = ?
reserveLivestreamHandler:136 D08EFE41A6268EC2B8F6D66D92E2FA72 UPDATE reservation_slots SET slot = slot - 1 WHERE start_at >= ? AND end_at <= ?
reserveLivestreamHandler:140 9FA89706E7DCD3BA85C1D562E53D16BA INSERT INTO livestreams (user_id, title, description, playlist_url, thumbnail_url, start_at, end_at) VALUES(:user_id, :title, :description, :playlist_url, :thumbnail_url, :start_at, :end_at)
reserveLivestreamHandler:153 50C1C55EB78A413CCE26907DE54C1D4A INSERT INTO livestream_tags (livestream_id, tag_id) VALUES (:livestream_id, :tag_id)
reserveLivestreamHandler:161,fillLivestreamResponse:505 9B864E0B1A3056BF722F3339FF6C2184 SELECT * FROM tags WHERE id = ?
searchLivestreamsHandler:187 476B644BB1AF1566211E70D1AB6ABAE6 SELECT id FROM tags WHERE name = ?
searchLivestreamsHandler:191 52E5A1338E9AB141B6AAE7AD1BFA2353 SELECT * FROM livestream_tags WHERE tag_id IN (?) ORDER BY livestream_id DESC
searchLivestreamsHandler:202 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
searchLivestreamsHandler:210 D0D078D6ECA6395A834EA7CE8410B11D SELECT * FROM livestreams ORDER BY id DESC
searchLivestreamsHandler:226,fillLivestreamResponse:505 9B864E0B1A3056BF722F3339FF6C2184 SELECT * FROM tags WHERE id = ?
getMyLivestreamsHandler:258 5D09930E7A023E7D2E21C43DDFC969AD SELECT * FROM livestreams WHERE user_id = ?
getMyLivestreamsHandler:263,fillLivestreamResponse:505 9B864E0B1A3056BF722F3339FF6C2184 SELECT * FROM tags WHERE id = ?
getUserLivestreamsHandler:292 9B32CBE99E202A6003AE79E39EB35BF9 SELECT * FROM users WHERE name = ?
getUserLivestreamsHandler:301 5D09930E7A023E7D2E21C43DDFC969AD SELECT * FROM livestreams WHERE user_id = ?
getUserLivestreamsHandler:306,fillLivestreamResponse:505 9B864E0B1A3056BF722F3339FF6C2184 SELECT * FROM tags WHERE id = ?
enterLivestreamHandler:350 F3EA3787950DBE058F2B7805E2D206AF INSERT INTO livestream_viewers_history (user_id, livestream_id, created_at) VALUES(:user_id, :livestream_id, :created_at)
exitLivestreamHandler:384 2899F5B85F260C474FC8150B2763FE79 DELETE FROM livestream_viewers_history WHERE user_id = ? AND livestream_id = ?
getLivestreamHandler:414 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
getLivestreamHandler:422,fillLivestreamResponse:505 9B864E0B1A3056BF722F3339FF6C2184 SELECT * FROM tags WHERE id = ?
getLivecommentReportsHandler:453 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
getLivecommentReportsHandler:467 9B0CD3249B26D7D03C1CC61FAE789322 SELECT * FROM livecomment_reports WHERE livestream_id = ?
fillLivestreamResponse:489 F15E5E09C27C92BE6ED2B586D171D68A SELECT * FROM users WHERE id = ?
fillLivestreamResponse:498 AC21429E0B8371DE65207B7DDBC2F610 SELECT * FROM livestream_tags WHERE livestream_id = ?
fillLivestreamResponse:505 9B864E0B1A3056BF722F3339FF6C2184 SELECT * FROM tags WHERE id = ?
GetPaymentResult:23 EFCE58B11397A24A284FD4E77D50FA71 SELECT IFNULL(SUM(tip), 0) FROM livecomments
getReactionsHandler:55 8A6A329DAE793CF5782CCB492162353D SELECT * FROM reactions WHERE livestream_id = ? ORDER BY created_at DESC
getReactionsHandler:71,fillReactionResponse:155 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
postReactionHandler:121 FB492CB0CDFF6CCA5EBD6A35D2881937 INSERT INTO reactions (user_id, livestream_id, emoji_name, created_at) VALUES (:user_id, :livestream_id, :emoji_name, :created_at)
postReactionHandler:132,fillReactionResponse:155 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
fillReactionResponse:146 F15E5E09C27C92BE6ED2B586D171D68A SELECT * FROM users WHERE id = ?
fillReactionResponse:155 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
getUserStatisticsHandler:81 9B32CBE99E202A6003AE79E39EB35BF9 SELECT * FROM users WHERE name = ?
getUserStatisticsHandler:91 A4FC5C1E8C543E92A123211BCE782272 SELECT * FROM users
getUserStatisticsHandler:136 7EED49F48F65B1CE1EBA0DF3B4689B0C SELECT COUNT(*) FROM users u
INNER JOIN livestreams l ON l.user_id = u.id
INNER JOIN reactions r ON r.livestream_id = l.id
WHERE u.name = ?
getUserStatisticsHandler:149 5D09930E7A023E7D2E21C43DDFC969AD SELECT * FROM livestreams WHERE user_id = ?
getUserStatisticsHandler:155 1CE09EA13753F1EB222940DA38ADE052 SELECT * FROM livecomments WHERE livestream_id = ?
getUserStatisticsHandler:169 38671CBA1BF1FCDB31E44F3406FBB6B0 SELECT COUNT(*) FROM livestream_viewers_history WHERE livestream_id = ?
getLivestreamStatisticsHandler:222 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
getLivestreamStatisticsHandler:231 4EDBD6693B37084DE44B9792CC8F50CF SELECT * FROM livestreams
getLivestreamStatisticsHandler:239 2DAE44F5C7A4EC19DE4CFD50FBD95B1C SELECT COUNT(*) FROM livestreams l INNER JOIN reactions r ON l.id = r.livestream_id WHERE l.id = ?
getLivestreamStatisticsHandler:244 CD40B03AA401C6C016EAC8A59B809B8A SELECT IFNULL(SUM(l2.tip), 0) FROM livestreams l INNER JOIN livecomments l2 ON l.id = l2.livestream_id WHERE l.id = ?
getLivestreamStatisticsHandler:267 01EEB391152FB82F8F0B90C8DD3CB86E SELECT COUNT(*) FROM livestreams l INNER JOIN livestream_viewers_history h ON h.livestream_id = l.id WHERE l.id = ?
getLivestreamStatisticsHandler:273 1D48A19D9382A9216572F4AD9969B46A SELECT IFNULL(MAX(tip), 0) FROM livestreams l INNER JOIN livecomments l2 ON l2.livestream_id = l.id WHERE l.id = ?
getLivestreamStatisticsHandler:279 EF50C1C392721A2BED13592260D66AB2 SELECT COUNT(*) FROM livestreams l INNER JOIN reactions r ON r.livestream_id = l.id WHERE l.id = ?
getLivestreamStatisticsHandler:285 F4A4D06FA91756DBA974B3306D4A149C SELECT COUNT(*) FROM livestreams l INNER JOIN livecomment_reports r ON r.livestream_id = l.id WHERE l.id = ?
getTagHandler:35 EA674DF618E83C0CEC75A0B1ABD8F6D1 SELECT * FROM tags
getStreamerThemeHandler:75 BDEDFE7FF2B14B3381FAC7B6A6206D6C SELECT id FROM users WHERE name = ?
getStreamerThemeHandler:84 91D73A9BE30B4E63223B63F1942BBE93 SELECT * FROM themes WHERE user_id = ?
getIconHandler:100 9B32CBE99E202A6003AE79E39EB35BF9 SELECT * FROM users WHERE name = ?
getIconHandler:108 6D0A57129D1919DBC0CFDEFDE87411E9 SELECT image FROM icons WHERE user_id = ?
postIconHandler:143 4F65E74889F8A2FB9A3CFAEBB0003FEE DELETE FROM icons WHERE user_id = ?
postIconHandler:147 D196E94DA0044B0BF4FA0DBA42EDFFD6 INSERT INTO icons (user_id, image) VALUES (?, ?)
getMeHandler:186 F15E5E09C27C92BE6ED2B586D171D68A SELECT * FROM users WHERE id = ?
getMeHandler:194,fillUserResponse:408 6D0A57129D1919DBC0CFDEFDE87411E9 SELECT image FROM icons WHERE user_id = ?
registerHandler:239 ED0699EE4C7D067DDDEB03A61C8F654D INSERT INTO users (name, display_name, description, password) VALUES(:name, :display_name, :description, :password)
registerHandler:255 48DF405F724A7532D3B523588AFDE199 INSERT INTO themes (user_id, dark_mode) VALUES(:user_id, :dark_mode)
registerHandler:263,fillUserResponse:408 6D0A57129D1919DBC0CFDEFDE87411E9 SELECT image FROM icons WHERE user_id = ?
loginHandler:294 9B32CBE99E202A6003AE79E39EB35BF9 SELECT * FROM users WHERE name = ?
getUserHandler:358 9B32CBE99E202A6003AE79E39EB35BF9 SELECT * FROM users WHERE name = ?
getUserHandler:365,fillUserResponse:408 6D0A57129D1919DBC0CFDEFDE87411E9 SELECT image FROM icons WHERE user_id = ?
fillUserResponse:403 91D73A9BE30B4E63223B63F1942BBE93 SELECT * FROM themes WHERE user_id = ?
fillUserResponse:408 6D0A57129D1919DBC0CFDEFDE87411E9 SELECT image FROM icons WHERE user_id = ?
-notrace
だとこんな感じ。
❯ $(go env GOPATH)/bin/go-discover-sql-caller -dir webapp/go -notrace
Location Checksum SQL
getLivecommentsHandler:87 1248963BB76FF70D32F54FE5A47D1DFD SELECT * FROM livecomments WHERE livestream_id = ? ORDER BY created_at DESC
getNgwords:146 925017AE676DBA305B883A3F4E668C42 SELECT * FROM ng_words WHERE user_id = ? AND livestream_id = ? ORDER BY created_at DESC
postLivecommentHandler:191 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
postLivecommentHandler:201 6BFB2BE3E545ED01A56DD8BD604799F5 SELECT id, user_id, livestream_id, word FROM ng_words WHERE user_id = ? AND livestream_id = ?
postLivecommentHandler:233 200A4AF4256FE1C25C07A7EE374E7562 INSERT INTO livecomments (user_id, livestream_id, comment, tip, created_at) VALUES (:user_id, :livestream_id, :comment, :tip, :created_at)
reportLivecommentHandler:285 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
reportLivecommentHandler:294 13344416982E8C400C42E6BB74FC7459 SELECT * FROM livecomments WHERE id = ?
reportLivecommentHandler:309 832203E623674A2EB51B7D6ED64865B8 INSERT INTO livecomment_reports(user_id, livestream_id, livecomment_id, created_at) VALUES (:user_id, :livestream_id, :livecomment_id, :created_at)
moderateHandler:362 32C65D4958BEA4CEA73D3C821590F1F4 SELECT * FROM livestreams WHERE id = ? AND user_id = ?
moderateHandler:369 8F83A27BBCDF7A390C591A281988D737 INSERT INTO ng_words(user_id, livestream_id, word, created_at) VALUES (:user_id, :livestream_id, :word, :created_at)
moderateHandler:385 46C3FEA6D24AAE22C3291EFD50FABAEF SELECT * FROM ng_words WHERE livestream_id = ?
moderateHandler:393 4BFAE7029DE99922D8C20681925FEE93 SELECT * FROM livecomments
fillLivecommentResponse:427 F15E5E09C27C92BE6ED2B586D171D68A SELECT * FROM users WHERE id = ?
fillLivecommentResponse:436 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
fillLivecommentReportResponse:458 F15E5E09C27C92BE6ED2B586D171D68A SELECT * FROM users WHERE id = ?
fillLivecommentReportResponse:467 13344416982E8C400C42E6BB74FC7459 SELECT * FROM livecomments WHERE id = ?
reserveLivestreamHandler:109 DCE9DBBA4B54B6C56ABB6CE74ED20DCB SELECT * FROM reservation_slots WHERE start_at >= ? AND end_at <= ? FOR UPDATE
reserveLivestreamHandler:115 12686C37E2C015F0AF48846765407261 SELECT slot FROM reservation_slots WHERE start_at = ? AND end_at = ?
reserveLivestreamHandler:136 D08EFE41A6268EC2B8F6D66D92E2FA72 UPDATE reservation_slots SET slot = slot - 1 WHERE start_at >= ? AND end_at <= ?
reserveLivestreamHandler:140 9FA89706E7DCD3BA85C1D562E53D16BA INSERT INTO livestreams (user_id, title, description, playlist_url, thumbnail_url, start_at, end_at) VALUES(:user_id, :title, :description, :playlist_url, :thumbnail_url, :start_at, :end_at)
reserveLivestreamHandler:153 50C1C55EB78A413CCE26907DE54C1D4A INSERT INTO livestream_tags (livestream_id, tag_id) VALUES (:livestream_id, :tag_id)
searchLivestreamsHandler:187 476B644BB1AF1566211E70D1AB6ABAE6 SELECT id FROM tags WHERE name = ?
searchLivestreamsHandler:191 52E5A1338E9AB141B6AAE7AD1BFA2353 SELECT * FROM livestream_tags WHERE tag_id IN (?) ORDER BY livestream_id DESC
searchLivestreamsHandler:202 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
searchLivestreamsHandler:210 D0D078D6ECA6395A834EA7CE8410B11D SELECT * FROM livestreams ORDER BY id DESC
getMyLivestreamsHandler:258 5D09930E7A023E7D2E21C43DDFC969AD SELECT * FROM livestreams WHERE user_id = ?
getUserLivestreamsHandler:292 9B32CBE99E202A6003AE79E39EB35BF9 SELECT * FROM users WHERE name = ?
getUserLivestreamsHandler:301 5D09930E7A023E7D2E21C43DDFC969AD SELECT * FROM livestreams WHERE user_id = ?
enterLivestreamHandler:350 F3EA3787950DBE058F2B7805E2D206AF INSERT INTO livestream_viewers_history (user_id, livestream_id, created_at) VALUES(:user_id, :livestream_id, :created_at)
exitLivestreamHandler:384 2899F5B85F260C474FC8150B2763FE79 DELETE FROM livestream_viewers_history WHERE user_id = ? AND livestream_id = ?
getLivestreamHandler:414 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
getLivecommentReportsHandler:453 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
getLivecommentReportsHandler:467 9B0CD3249B26D7D03C1CC61FAE789322 SELECT * FROM livecomment_reports WHERE livestream_id = ?
fillLivestreamResponse:489 F15E5E09C27C92BE6ED2B586D171D68A SELECT * FROM users WHERE id = ?
fillLivestreamResponse:498 AC21429E0B8371DE65207B7DDBC2F610 SELECT * FROM livestream_tags WHERE livestream_id = ?
fillLivestreamResponse:505 9B864E0B1A3056BF722F3339FF6C2184 SELECT * FROM tags WHERE id = ?
GetPaymentResult:23 EFCE58B11397A24A284FD4E77D50FA71 SELECT IFNULL(SUM(tip), 0) FROM livecomments
getReactionsHandler:55 8A6A329DAE793CF5782CCB492162353D SELECT * FROM reactions WHERE livestream_id = ? ORDER BY created_at DESC
postReactionHandler:121 FB492CB0CDFF6CCA5EBD6A35D2881937 INSERT INTO reactions (user_id, livestream_id, emoji_name, created_at) VALUES (:user_id, :livestream_id, :emoji_name, :created_at)
fillReactionResponse:146 F15E5E09C27C92BE6ED2B586D171D68A SELECT * FROM users WHERE id = ?
fillReactionResponse:155 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
getUserStatisticsHandler:81 9B32CBE99E202A6003AE79E39EB35BF9 SELECT * FROM users WHERE name = ?
getUserStatisticsHandler:91 A4FC5C1E8C543E92A123211BCE782272 SELECT * FROM users
getUserStatisticsHandler:136 7EED49F48F65B1CE1EBA0DF3B4689B0C SELECT COUNT(*) FROM users u
INNER JOIN livestreams l ON l.user_id = u.id
INNER JOIN reactions r ON r.livestream_id = l.id
WHERE u.name = ?
getUserStatisticsHandler:149 5D09930E7A023E7D2E21C43DDFC969AD SELECT * FROM livestreams WHERE user_id = ?
getUserStatisticsHandler:155 1CE09EA13753F1EB222940DA38ADE052 SELECT * FROM livecomments WHERE livestream_id = ?
getUserStatisticsHandler:169 38671CBA1BF1FCDB31E44F3406FBB6B0 SELECT COUNT(*) FROM livestream_viewers_history WHERE livestream_id = ?
getLivestreamStatisticsHandler:222 B83ADB51427F2D680B7655A83409ABA0 SELECT * FROM livestreams WHERE id = ?
getLivestreamStatisticsHandler:231 4EDBD6693B37084DE44B9792CC8F50CF SELECT * FROM livestreams
getLivestreamStatisticsHandler:239 2DAE44F5C7A4EC19DE4CFD50FBD95B1C SELECT COUNT(*) FROM livestreams l INNER JOIN reactions r ON l.id = r.livestream_id WHERE l.id = ?
getLivestreamStatisticsHandler:244 CD40B03AA401C6C016EAC8A59B809B8A SELECT IFNULL(SUM(l2.tip), 0) FROM livestreams l INNER JOIN livecomments l2 ON l.id = l2.livestream_id WHERE l.id = ?
getLivestreamStatisticsHandler:267 01EEB391152FB82F8F0B90C8DD3CB86E SELECT COUNT(*) FROM livestreams l INNER JOIN livestream_viewers_history h ON h.livestream_id = l.id WHERE l.id = ?
getLivestreamStatisticsHandler:273 1D48A19D9382A9216572F4AD9969B46A SELECT IFNULL(MAX(tip), 0) FROM livestreams l INNER JOIN livecomments l2 ON l2.livestream_id = l.id WHERE l.id = ?
getLivestreamStatisticsHandler:279 EF50C1C392721A2BED13592260D66AB2 SELECT COUNT(*) FROM livestreams l INNER JOIN reactions r ON r.livestream_id = l.id WHERE l.id = ?
getLivestreamStatisticsHandler:285 F4A4D06FA91756DBA974B3306D4A149C SELECT COUNT(*) FROM livestreams l INNER JOIN livecomment_reports r ON r.livestream_id = l.id WHERE l.id = ?
getTagHandler:35 EA674DF618E83C0CEC75A0B1ABD8F6D1 SELECT * FROM tags
getStreamerThemeHandler:75 BDEDFE7FF2B14B3381FAC7B6A6206D6C SELECT id FROM users WHERE name = ?
getStreamerThemeHandler:84 91D73A9BE30B4E63223B63F1942BBE93 SELECT * FROM themes WHERE user_id = ?
getIconHandler:100 9B32CBE99E202A6003AE79E39EB35BF9 SELECT * FROM users WHERE name = ?
getIconHandler:108 6D0A57129D1919DBC0CFDEFDE87411E9 SELECT image FROM icons WHERE user_id = ?
postIconHandler:143 4F65E74889F8A2FB9A3CFAEBB0003FEE DELETE FROM icons WHERE user_id = ?
postIconHandler:147 D196E94DA0044B0BF4FA0DBA42EDFFD6 INSERT INTO icons (user_id, image) VALUES (?, ?)
getMeHandler:186 F15E5E09C27C92BE6ED2B586D171D68A SELECT * FROM users WHERE id = ?
registerHandler:239 ED0699EE4C7D067DDDEB03A61C8F654D INSERT INTO users (name, display_name, description, password) VALUES(:name, :display_name, :description, :password)
registerHandler:255 48DF405F724A7532D3B523588AFDE199 INSERT INTO themes (user_id, dark_mode) VALUES(:user_id, :dark_mode)
loginHandler:294 9B32CBE99E202A6003AE79E39EB35BF9 SELECT * FROM users WHERE name = ?
getUserHandler:358 9B32CBE99E202A6003AE79E39EB35BF9 SELECT * FROM users WHERE name = ?
fillUserResponse:403 91D73A9BE30B4E63223B63F1942BBE93 SELECT * FROM themes WHERE user_id = ?
fillUserResponse:408 6D0A57129D1919DBC0CFDEFDE87411E9 SELECT image FROM icons WHERE user_id = ?
わが軍のハイライト
ダッシュボードが閉まる17:00を挟んでスコアが2倍になりました。やったね!
来年はもっと着実に情報把握して判断できるマンになれるよう、またがんばります。
See also
- #isucon 初回から参加しているベテラン選手が40代前半のいま本選当日に向けて準備したこと
- #isucon チーム「ウー馬場ーイーツ・ザ・ファイナル」でISUCON14本選に参加し21位になりました
- 「SRE≠インフラなんだけどもう誤解されちゃってるから、DevOps新実装としてSite Production Engineeringはいかがでしょう?」でJAWS DAYS 2022に登壇しました #jawsdays #jawsug
- #isucon チーム「シン・ウー馬場ーイー2」でISUCON12本選に進出し12位になりました
- #isucon チーム「シン・ウー馬場ーイー2」でISUCON12予選に参加し2位で予選突破しました