データモデリングとインデックス設計

スポンサーリンク
PostgreSQL

【テクニカル・上級編】 tsvector型と全文検索 – PostgreSQL

PostgreSQLの全文検索、その「正体」と極限のチューニングPostgreSQLで全文検索を実装する際、まず手にするのが `tsvector` だろう。多くのエンジニアは、とりあえず `to_tsvector` を叩いて、`@@` 演算...
PostgreSQL

【実務・中級編】 tsvector型と全文検索 – PostgreSQL

やあ、今日もデータベースと格闘してる?PostgreSQLで「全文検索」って聞くと、真っ先に「ElasticsearchやMeilisearchを入れるべきか?」って悩むよね。もちろん、要件が複雑ならそれらを使うのが正解なんだけど、実はPo...
PostgreSQL

【入門編】 tsvector型と全文検索 – PostgreSQL

こんにちは!データベースの世界へようこそ。今日は、PostgreSQLを使っている人なら一度は憧れる(そして、ちょっとだけ難しそうに感じる)「全文検索」の魔法について、お話ししようと思います。「検索機能」って、普段何気なく使っていますよね。...
PostgreSQL

【テクニカル・上級編】 btree_gist拡張による複合インデックス – PostgreSQL

拡張の境界線を越える:btree_gist がもたらす「排他」という名の芸術PostgreSQLを長く触っていると、必ずと言っていいほど直面する壁がある。「このカラムとこのカラム、組み合わせで排他制約をかけたいけれど、片方が範囲型(Rang...
PostgreSQL

【実務・中級編】 btree_gist拡張による複合インデックス – PostgreSQL

「PostgreSQLで予約システムやスケジュール管理を実装してて、データの重複チェックで頭を抱えたこと、あるよね?」もしあなたが今、アプリケーション側で「予約日時が被っていないか」を何度もSELECTしてはINSERTするようなコードを書...
PostgreSQL

【入門編】 btree_gist拡張による複合インデックス – PostgreSQL

こんにちは!データベースエンジニアの日常へようこそ。今日は、PostgreSQLのちょっと「玄人好み」だけど、知っていると世界が変わる便利なツール、`btree_gist`という拡張機能についてお話ししようと思います。「拡張機能?なんだか難...
PostgreSQL

【テクニカル・上級編】 pg_trgm拡張によるトリグラムインデックス – PostgreSQL

曖昧検索の「最後の砦」:pg_trgmで文字列検索の限界を突破するPostgreSQLを使っていると、いつかは直面する壁があります。`LIKE '%keyword%'` という、インデックスが効かないあの絶望的なクエリです。テーブルが数万件...
PostgreSQL

【実務・中級編】 pg_trgm拡張によるトリグラムインデックス – PostgreSQL

「LIKE検索が遅い…」と悩む君へ。PostgreSQLの「pg_trgm」で全文検索の沼から抜け出そう現場で開発していると、一度はぶつかる壁があるよね。「ユーザーが検索窓に何を入れるか分からないから、とりあえず `LIKE '%keywo...
PostgreSQL

【入門編】 pg_trgm拡張によるトリグラムインデックス – PostgreSQL

こんにちは!データベースの世界へようこそ。普段、私たちがWebアプリを使っているとき、検索窓にキーワードを入れると一瞬で結果が表示されますよね。あれって実は、裏側でデータベースがものすごいスピードで「辞書引き」をしてくれているおかげなんです...
PostgreSQL

【テクニカル・上級編】 Index ScanとBitmap Index Scanの違い – PostgreSQL

「Index Scanか、Bitmap Scanか」— 実行計画の裏側で何が起きているのかPostgreSQLの `EXPLAIN` を眺めているとき、ふと自分の直感とオプティマイザの選択が食い違うことはありませんか?「これならIndex ...
スポンサーリンク