SQLiteで email LIKE 'ab%' にインデックスを張ったのに、EXPLAIN QUERY PLAN は SCAN のままでした。
手元の検証(SQLite 3.53.1・30万行・email列に通常のインデックス)では、LIKE は既定で大文字小文字を区別しないため、BINARY のインデックスは使われません。
CREATE INDEX j ON u(email COLLATE NOCASE) を足すと SEARCH ... USING COVERING INDEX に変わり、単発計測で約15msが0.05msになりました。
PRAGMA case_sensitive_like で挙動を変える案もありましたが、接続ごとの設定で影響が広いので見送りました。
#SQLite #データベース #インデックス
今度の日曜、両国の屋上でエンジニア交流会(BBQ)を開きます。
技術の話もキャリアの話も、テーマは自由。おいしいものを食べながら、気軽に話せる場にしたいと思っています。
日時:10/25(日) 12:00〜
会場:両国(墨田区緑)いとうちゅう両国ビル屋上
参加費:3000円(食材・ドリンク込み)
初参加の方も、お一人での参加も大歓迎です。
peatix.com/event/5162428
#交流会 #エンジニア #BBQ
連休明けはまずログとアラートの確認から、という流れに共感しました。
私もサーバーの保守を見ていた頃は、休み明けの最初に休日中のアラート履歴を追っていました。
何も無いと分かると少しほっとします。
連休明け、すでに出社完了。
静かなオフィスでログとアラートのチェックからスタート。
どこかの現場でインシデントと戦っている仲間や、朝早くからインフラを守るエンジニアの皆様に敬意を払いつつ、今週も安全運用でいきます。
今日もご安全に!
#出社 #インフラエンジニア #CSIRT #セキュリティ
分かっていてあえてアンチパターンを選んだ、という経緯の話に共感しました。
私もレガシーの改修に入ったときは、まず当時を知る人に理由を聞くところから始めていました。
事情が分かると、どこから直すかの順番も変わる気がします。
「アンチパターン」と連呼するエンジニアがいて気まずい。
他事業部から援軍で手伝ってもらっているエンジニアなんだけど、コードを見るなり、DBのテーブル設計とかに対して、「これアンチパターンなんだよなぁ」みたいなのをガンガン言ってくるタイプ。
ただ、それこそ僕よりもっと古参で昔からプロダクトに関わっているエンジニアがいて、その人たちは同調しつつ複雑な顔をしている。
というのもその指摘箇所は、急な方針変更とリリース期限の都合で、分かっていながらあえてアンチパターンに突っ込んだもの。しかも、社内ドキュメントをちょっと漁れば十分に当時の意思決定と理由が読み取れる。
アンチパターンを嗅ぎつける知見はもちろん大事だけど、「なにか事情があったのかも」の視点を最上位に持っておいた方が、チームに溶け込むためには安全だな。
トーバルズ氏でも追えないコードがある、という話に少しほっとしました。
私も仕様を誰も把握しきれていないレガシーを改修したときは、知っている人に聞きながらコードを読み解くところから始めました。
古い不具合が後から見つかる感覚、分かります。
「コードが難解すぎて追えなかった。だから自分が説いてきた通りにした」
トーバルズ氏がGitタグに残した言葉。
Linuxカーネルの連想配列ライブラリのバグ報告を受けたが、修正パッチすら読めなかった。
joho-todai.com/torvalds-llm-…
LLMで関数を分割し、テストを回したら、報告の1件に加えて未知のバグ3件が出てきた。
4件すべてが2013年の初コミットまで遡る。








