Skip to main content
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Uploaded by
Masahiko Sawada
PDF, PPTX
9,857 views
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
正式版は下記URLをご参照ください。 http://www.slideshare.net/hadoopxnttdata/pgbigm-39739507
Technology
◦
Read more
More Related Content
PDF
pg_trgmと全文検索
by
NTT DATA OSS Professional Services
34 slides
16K views
PDF
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
by
Masahiko Sawada
37 slides
19.2K views
PDF
pg_bigmを触り始めた人に伝えたいこと
by
Masahiko Sawada
26 slides
1.3K views
PPTX
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
20 slides
7.4K views
PDF
pg_bigmを用いた全文検索のしくみ(前編)
by
NTT DATA OSS Professional Services
34 slides
5.2K views
PDF
pg_bigmを用いた全文検索のしくみ(後編)
by
NTT DATA OSS Professional Services
46 slides
3.8K views
PDF
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
by
Uptime Technologies LLC (JP)
67 slides
57.6K views
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
22 slides
4.8K views
pg_trgmと全文検索
by
NTT DATA OSS Professional Services
34 slides
16K views
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
by
Masahiko Sawada
37 slides
19.2K views
pg_bigmを触り始めた人に伝えたいこと
by
Masahiko Sawada
26 slides
1.3K views
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
20 slides
7.4K views
pg_bigmを用いた全文検索のしくみ(前編)
by
NTT DATA OSS Professional Services
34 slides
5.2K views
pg_bigmを用いた全文検索のしくみ(後編)
by
NTT DATA OSS Professional Services
46 slides
3.8K views
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
by
Uptime Technologies LLC (JP)
67 slides
57.6K views
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
22 slides
4.8K views
What's hot
PDF
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
by
NTT DATA OSS Professional Services
29 slides
15K views
PDF
Inside vacuum - 第一回PostgreSQLプレ勉強会
by
Masahiko Sawada
59 slides
14.2K views
PDF
PostgreSQLの関数属性を知ろう
by
kasaharatt
11 slides
5.6K views
PDF
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
by
Insight Technology, Inc.
33 slides
9.6K views
PDF
pg_trgmと全文検索
by
Masahiko Sawada
34 slides
6.9K views
PDF
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
51 slides
90.6K views
PPTX
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
15 slides
4.1K views
PPTX
SQLチューニング入門 入門編
by
Miki Shimogai
72 slides
12.5K views
PDF
PostgreSQL 15 開発最新情報
by
Masahiko Sawada
33 slides
2K views
PDF
pg_bigmと類似度検索
by
Masahiko Sawada
19 slides
3.3K views
PDF
MongoDB〜その性質と利用場面〜
by
Naruhiko Ogasawara
61 slides
65.5K views
PDF
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
12 slides
1.5K views
PPTX
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
by
NTT DATA Technology & Innovation
63 slides
6.2K views
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
37 slides
2.1K views
PDF
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
by
NTT DATA Technology & Innovation
35 slides
3.5K views
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
by
NTT DATA Technology & Innovation
50 slides
3.4K views
PDF
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
by
NTT DATA Technology & Innovation
63 slides
6K views
PPTX
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
by
Miki Shimogai
88 slides
130.1K views
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
by
NTT DATA Technology & Innovation
53 slides
15K views
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
30 slides
5.5K views
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
by
NTT DATA OSS Professional Services
29 slides
15K views
Inside vacuum - 第一回PostgreSQLプレ勉強会
by
Masahiko Sawada
59 slides
14.2K views
PostgreSQLの関数属性を知ろう
by
kasaharatt
11 slides
5.6K views
[B23] PostgreSQLのインデックス・チューニング by Tomonari Katsumata
by
Insight Technology, Inc.
33 slides
9.6K views
pg_trgmと全文検索
by
Masahiko Sawada
34 slides
6.9K views
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
51 slides
90.6K views
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
15 slides
4.1K views
SQLチューニング入門 入門編
by
Miki Shimogai
72 slides
12.5K views
PostgreSQL 15 開発最新情報
by
Masahiko Sawada
33 slides
2K views
pg_bigmと類似度検索
by
Masahiko Sawada
19 slides
3.3K views
MongoDB〜その性質と利用場面〜
by
Naruhiko Ogasawara
61 slides
65.5K views
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
12 slides
1.5K views
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
by
NTT DATA Technology & Innovation
63 slides
6.2K views
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
37 slides
2.1K views
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
by
NTT DATA Technology & Innovation
35 slides
3.5K views
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
by
NTT DATA Technology & Innovation
50 slides
3.4K views
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
by
NTT DATA Technology & Innovation
63 slides
6K views
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
by
Miki Shimogai
88 slides
130.1K views
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
by
NTT DATA Technology & Innovation
53 slides
15K views
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
30 slides
5.5K views
Viewers also liked
PPTX
トランザクションをSerializableにする4つの方法
by
Kumazaki Hiroki
47 slides
24.3K views
PDF
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
by
Ryuichiro Munechika
26 slides
6K views
PDF
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
by
Hiroshi Yamaguchi
133 slides
37.1K views
PDF
NTT DATA と PostgreSQL が挑んだ総力戦
by
NTT DATA OSS Professional Services
46 slides
40.1K views
PPTX
トランザクションの設計と進化
by
Kumazaki Hiroki
61 slides
74.5K views
PDF
PostgreSQLの運用・監視にまつわるエトセトラ
by
NTT DATA OSS Professional Services
43 slides
17K views
PPTX
How to Help a Jamaican Come on Time - Time-Based Productivity via Psychology ...
by
Francis Wade
30 slides
4.4K views
PPTX
Get to Inbox Zero
by
Purple Dog
6 slides
4.3K views
PDF
Aja wooldridge - Press Kit
by
Thomas Wooldridge
13 slides
4.2K views
PDF
Como submeter seu case - CONIP 2017
by
Informa TI GOV
3 slides
352 views
PPTX
PPACA: Staying Compliant & Strategic
by
CBIZ, Inc.
25 slides
1.5K views
PDF
Guia do Desenvolvimento de Brindes
by
Memory Promotional Enterprise
4 slides
1.1K views
PDF
7 Reasons Why Your Association Needs an Expert Calling Network (ECN)
by
Brainsy, Inc.
12 slides
543 views
PDF
Lawyer in Myanmar Oliver Massmann The Most Important Clause in Any Commercial...
by
Dr. Oliver Massmann
3 slides
6.8K views
PDF
Vud del 06 al 10 de marzo de 2017
by
Delegación Miguel Hidalgo
11 slides
169 views
トランザクションをSerializableにする4つの方法
by
Kumazaki Hiroki
47 slides
24.3K views
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
by
Ryuichiro Munechika
26 slides
6K views
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
by
Hiroshi Yamaguchi
133 slides
37.1K views
NTT DATA と PostgreSQL が挑んだ総力戦
by
NTT DATA OSS Professional Services
46 slides
40.1K views
トランザクションの設計と進化
by
Kumazaki Hiroki
61 slides
74.5K views
PostgreSQLの運用・監視にまつわるエトセトラ
by
NTT DATA OSS Professional Services
43 slides
17K views
How to Help a Jamaican Come on Time - Time-Based Productivity via Psychology ...
by
Francis Wade
30 slides
4.4K views
Get to Inbox Zero
by
Purple Dog
6 slides
4.3K views
Aja wooldridge - Press Kit
by
Thomas Wooldridge
13 slides
4.2K views
Como submeter seu case - CONIP 2017
by
Informa TI GOV
3 slides
352 views
PPACA: Staying Compliant & Strategic
by
CBIZ, Inc.
25 slides
1.5K views
Guia do Desenvolvimento de Brindes
by
Memory Promotional Enterprise
4 slides
1.1K views
7 Reasons Why Your Association Needs an Expert Calling Network (ECN)
by
Brainsy, Inc.
12 slides
543 views
Lawyer in Myanmar Oliver Massmann The Most Important Clause in Any Commercial...
by
Dr. Oliver Massmann
3 slides
6.8K views
Vud del 06 al 10 de marzo de 2017
by
Delegación Miguel Hidalgo
11 slides
169 views
Similar to pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
PPTX
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
by
NTT DATA Technology & Innovation
65 slides
5.1K views
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
by
NTT DATA Technology & Innovation
22 slides
487 views
PDF
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
by
sleepy_yoshi
23 slides
1.3K views
PDF
MySQL 5.7 InnoDB 日本語全文検索(その2)
by
yoyamasaki
46 slides
4.8K views
PDF
使ってみませんか?pg hint_plan
by
Masao Fujii
29 slides
20.2K views
PDF
PostgreSQL13 新機能紹介
by
Satoshi Hirata
70 slides
235 views
PDF
PostgreSQL13を検証してみた
by
Naoya Takeuchi
17 slides
256 views
PDF
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
by
keki3
61 slides
193 views
PPT
20090107 Postgre Sqlチューニング(Sql編)
by
Hiromu Shioya
26 slides
8.4K views
PDF
JPUGしくみ+アプリケーション勉強会(第20回)
by
Yoshinori Nakanishi
44 slides
2.6K views
PDF
ヤフー社内でやってるMySQLチューニングセミナー大公開
by
Yahoo!デベロッパーネットワーク
65 slides
97.9K views
PDF
Pgunconf 20121212-postgeres fdw
by
Toshi Harada
45 slides
2.1K views
PDF
2019年度若手技術者向け講座 インデックス
by
keki3
77 slides
182 views
PDF
MySQL 入門的なはなし
by
Yuya Takeyama
35 slides
2.7K views
PDF
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
by
Insight Technology, Inc.
17 slides
1.5K views
PDF
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
by
NTT DATA Technology & Innovation
21 slides
2.7K views
PDF
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
by
Shigeru Hanada
45 slides
2.7K views
PDF
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
by
Masahiro Nagano
105 slides
56.1K views
PDF
KOF2015 PostgreSQL 9.5
by
Toshi Harada
83 slides
1.6K views
ODP
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
by
Shigeru Hanada
37 slides
3.5K views
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
by
NTT DATA Technology & Innovation
65 slides
5.1K views
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
by
NTT DATA Technology & Innovation
22 slides
487 views
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
by
sleepy_yoshi
23 slides
1.3K views
MySQL 5.7 InnoDB 日本語全文検索(その2)
by
yoyamasaki
46 slides
4.8K views
使ってみませんか?pg hint_plan
by
Masao Fujii
29 slides
20.2K views
PostgreSQL13 新機能紹介
by
Satoshi Hirata
70 slides
235 views
PostgreSQL13を検証してみた
by
Naoya Takeuchi
17 slides
256 views
2018年度 若手技術者向け講座 大量データの扱い・ストアド・メモリ管理
by
keki3
61 slides
193 views
20090107 Postgre Sqlチューニング(Sql編)
by
Hiromu Shioya
26 slides
8.4K views
JPUGしくみ+アプリケーション勉強会(第20回)
by
Yoshinori Nakanishi
44 slides
2.6K views
ヤフー社内でやってるMySQLチューニングセミナー大公開
by
Yahoo!デベロッパーネットワーク
65 slides
97.9K views
Pgunconf 20121212-postgeres fdw
by
Toshi Harada
45 slides
2.1K views
2019年度若手技術者向け講座 インデックス
by
keki3
77 slides
182 views
MySQL 入門的なはなし
by
Yuya Takeyama
35 slides
2.7K views
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
by
Insight Technology, Inc.
17 slides
1.5K views
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
by
NTT DATA Technology & Innovation
21 slides
2.7K views
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
by
Shigeru Hanada
45 slides
2.7K views
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
by
Masahiro Nagano
105 slides
56.1K views
KOF2015 PostgreSQL 9.5
by
Toshi Harada
83 slides
1.6K views
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
by
Shigeru Hanada
37 slides
3.5K views
More from Masahiko Sawada
PDF
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
38 slides
2.2K views
PDF
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
by
Masahiko Sawada
32 slides
1.3K views
PDF
Vacuum徹底解説
by
Masahiko Sawada
51 slides
7.5K views
PDF
Transparent Data Encryption in PostgreSQL
by
Masahiko Sawada
38 slides
10.3K views
PDF
PostgreSQL 12の話
by
Masahiko Sawada
32 slides
7.8K views
PDF
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
by
Masahiko Sawada
22 slides
5K views
PDF
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
by
Masahiko Sawada
46 slides
12.7K views
PDF
Bloat and Fragmentation in PostgreSQL
by
Masahiko Sawada
36 slides
6.5K views
PDF
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
by
Masahiko Sawada
49 slides
2.4K views
PDF
今秋リリース予定のPostgreSQL11を徹底解説
by
Masahiko Sawada
66 slides
10.5K views
PDF
Vacuum more efficient than ever
by
Masahiko Sawada
48 slides
1.8K views
PDF
Vacuumとzheap
by
Masahiko Sawada
25 slides
1.8K views
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
69 slides
32.2K views
PDF
Parallel Vacuum
by
Masahiko Sawada
22 slides
1.1K views
PDF
PostgreSQLでスケールアウト
by
Masahiko Sawada
18 slides
12.7K views
PDF
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
by
Masahiko Sawada
7 slides
2.5K views
PDF
PostgreSQL10徹底解説
by
Masahiko Sawada
45 slides
12K views
PDF
FDW-based Sharding Update and Future
by
Masahiko Sawada
32 slides
2.4K views
PDF
What’s new in 9.6, by PostgreSQL contributor
by
Masahiko Sawada
49 slides
1.3K views
PDF
PostgreSQL 9.6 新機能紹介
by
Masahiko Sawada
48 slides
18.3K views
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
38 slides
2.2K views
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
by
Masahiko Sawada
32 slides
1.3K views
Vacuum徹底解説
by
Masahiko Sawada
51 slides
7.5K views
Transparent Data Encryption in PostgreSQL
by
Masahiko Sawada
38 slides
10.3K views
PostgreSQL 12の話
by
Masahiko Sawada
32 slides
7.8K views
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
by
Masahiko Sawada
22 slides
5K views
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
by
Masahiko Sawada
46 slides
12.7K views
Bloat and Fragmentation in PostgreSQL
by
Masahiko Sawada
36 slides
6.5K views
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
by
Masahiko Sawada
49 slides
2.4K views
今秋リリース予定のPostgreSQL11を徹底解説
by
Masahiko Sawada
66 slides
10.5K views
Vacuum more efficient than ever
by
Masahiko Sawada
48 slides
1.8K views
Vacuumとzheap
by
Masahiko Sawada
25 slides
1.8K views
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
69 slides
32.2K views
Parallel Vacuum
by
Masahiko Sawada
22 slides
1.1K views
PostgreSQLでスケールアウト
by
Masahiko Sawada
18 slides
12.7K views
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
by
Masahiko Sawada
7 slides
2.5K views
PostgreSQL10徹底解説
by
Masahiko Sawada
45 slides
12K views
FDW-based Sharding Update and Future
by
Masahiko Sawada
32 slides
2.4K views
What’s new in 9.6, by PostgreSQL contributor
by
Masahiko Sawada
49 slides
1.3K views
PostgreSQL 9.6 新機能紹介
by
Masahiko Sawada
48 slides
18.3K views
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編)
1.
Copyright © 2013
NTT DATA Corporation NTTデータ 基盤システム事業本部 澤田雅彦 pg_bigm(ピージーバイグラム)を用いた 全文検索のしくみ (後編) 第27回しくみ+アプリケーション勉強会(10/5)
2.
2Copyright © 2013NTT
DATA Corporation 自己紹介 名前 澤田 雅彦(さわだ まさひこ) 所属 NTTデータ 基盤システム事業本部 2年目です やっていること 去年:pg_bigmの開発、サポート 今年:レプリケーション関係
3.
3Copyright © 2013NTT
DATA Corporation INDEX 1.前編の復習 2.性能測定(後編) 3.pg_bigm独自機能 4.デモ 5.まとめ
4.
Copyright © 2013
NTT DATA Corporation 4 前編の復習
5.
5Copyright © 2013
NTT DATA Corporation DBの全文検索ってなに? SQL発行 DB : : テキスト型の列を持つテーブルから、キーワードを含むレコードを検索すること 全文検索では検索対象のデータが多い 全文検索用のインデックスを作成することで高速にできる キーワード:「オープンソース」
6.
6Copyright © 2013
NTT DATA Corporation pg_bigmとpg_trgm pg_bigm pg_trgm 対応バージョン 9.1~ 9.1~ 開発主体 NTTデータ PostgreSQL コミュニティ 日本語対応 ○ △ 1,2文字検索 ○ × (インデックスを有効に使えない) 類似度検索 × ○ 利用できるインデックス の種類 GINのみ GINとGiST
7.
7Copyright © 2013
NTT DATA Corporation pg_bigm pg_trgm pg_bigmとpg_trgmのインデックス登録時の 挙動の説明をしていきます pg_bigmではキーを文字列で持つ pg_trgmではキーをINT値で持つ pg_bigm,pg_trgmのインデックス登録 キー TID △△O 100 △OS 100 OSS 100 SSS 100 CRC1 100 CRC2 100 ①3文字分割 「△△O」、「△OS」、 「OSS」、「SSS」、 「SSあ」、「Sあ△」 ②重複削除 「△△O」、「△OS」、 「OSS」、「SSS」、 「CRC1」、「CRC2」 ①2文字分割 「△O」、「OS」、 「SS」、「SS」、 「Sあ」、「あ△」 ②重複削除 「△O」、「OS」、 「SS」 「Sあ」、「あ△」 キー TID △O 100 OS 100 SS 100 Sあ 100 あ△ 100 TID データ 100 OSSSあ キーワード ‘OSSSあ’ INSERT 3Byte以上の場合は ハッシュ変換される INT型で格納される TEXT型で格納される
8.
8Copyright © 2013
NTT DATA Corporation インデックス検索時の挙動 ①2文字分割 「OS」 「Sぐ」 「ぐれ」 キーワード‘OSぐれ’からTID100のデータが検索されるまでの 挙動を解説します ②インデックススキャン TID データ 100 POSぐれ 200 POSぐる 300 ぽSぐれ キー TID △P 100, 200 △ぽ 300 OS 100, 200 PO 100, 200 Sぐ 100, 200, 300 る△ 200 れ△ 100, 300 ぐれ 100, 300 : : ③TID候補決 定 →TID 100 ④Recheck 検索 キーワード ‘OSぐれ’ pg_bigmの場合
9.
Copyright © 2013
NTT DATA Corporation 9 性能測定(後編)
10.
10Copyright © 2013
NTT DATA Corporation 性能測定の概要 1.インデックス作成時間 2.インデックスサイズ 3.検索時間 4.データ挿入時間 測定対象 pg_bigm pg_trgm 測定項目 以下の項目を実施
11.
11Copyright © 2013
NTT DATA Corporation 測定環境 項目 詳細 CPU Core i7-3630QM メモリ 16GB ディスク 512GB SSD OS CentOS 6.4 DBMS PostgreSQL 9.2.4 ハードウェア環境 ソフトウェア環境
12.
12Copyright © 2013
NTT DATA Corporation テストデータ 項目 詳細 データソース 日本語Wikipedia テーブルサイズ 34GB データ件数 2.5億件 テーブル定義 CREATE TABLE hoge (col text) 以下のデータを用いて性能測定を実施した
13.
13Copyright © 2013
NTT DATA Corporation 作成時間とインデックスサイズ 対象 インデックス作成クエリ pg_bigm CREATE INDEX hoge_idx ON hoge USING gin(col gin_bigm_ops); pg_trgm CREATE INDEX hoge_idx ON hoge USING gin(col gin_trgm_ops); データ全件をロード後、以下のクエリでインデックスを作成 それぞれの作成時間と、インデックスサイズを10回計測
14.
14Copyright © 2013
NTT DATA Corporation 作成時間とインデックスサイズ pg_bigm pg_trgm インデックスサイズ 63GB 78GB インデックス作成時間 約3時間 約5時間 結果 pg_bigmの方がインデックスサイズが小さく、作成時間が短 い結果となった 考察 2文字ずつの分割の方がキーの重複が多いため、pg_bigmの方 がインデックスサイズが小さい →詳細は次のスライド pg_trgmではインデックス作成時に各3-gram文字列をハッ シュ変換するため、pg_bigmよりも時間がかかる
15.
15Copyright © 2013
NTT DATA Corporation インデックスキーの重複 「あいあい」を2文字、3文字分割する場合 pg_bigm △あ あい いあ あい い△ pg_trgm △△あ △あい あいあ いあい あい△
16.
16Copyright © 2013
NTT DATA Corporation インデックスキーの重複 「あいあい」を2文字、3文字分割して追加する場合 pg_bigm △あ あい いあ あい い△ pg_trgm △△あ △あい あいあ いあい あい△ 5個4個 重複を削除
17.
17Copyright © 2013
NTT DATA Corporation インデックスキーの重複 さらに「あいとあい」を2文字、3文字分割して追加する場合 pg_bigm △あ あい いあ い△ pg_trgm △△あ △あい あいあ いあい あい△ 5個 4個
18.
18Copyright © 2013
NTT DATA Corporation インデックスキーの重複 さらに「あいとあい」を2文字、3文字分割して追加する場合 pg_bigm △あ あい いあ い△ いと とあ 2個追加 pg_trgm △△あ △あい あいあ いあい あい△ あいと いとあ とあい 3個追加新しく作られる キーの数が違う
19.
19Copyright © 2013
NTT DATA Corporation 検索時間の検証概要 検索時間の検証では以下の2つの検索時間をそれぞ れ20回測定 ①検索結果が0件、1件、100件…での検索 ②検索文字数が1文字、2文字、3文字…での検索 検索クエリはpg_bigm、pg_trgm共に下記のクエリを実行 対象 検索クエリ pg_bigm SELECT col FROM hoge WHERE col LIKE ‘%東京都%’; pg_trgm
20.
20Copyright © 2013
NTT DATA Corporation 検索時間の検証概要 ~検索文字列①~ 検索文字列 結果件数 一日分 0件 明治五 1件 平成一 100件 上野駅 1万件 衆議院 10万件 東京都 60万件 検索結果件数が0件、1件、100件…となる検索文字列(3文字)を検索条件とする 検索結果数の変化が、どのように検索時間に影響するのかを確認
21.
21Copyright © 2013
NTT DATA Corporation 検索時間結果① 検索文字列 結果件数 pg_bigm pg_trgm SeqScan 一日分 0件 10ms 1ms 138s 明治五 1件 36ms 4ms 136s 平成一 100件 46ms 9ms 136s 上野駅 1万件 36ms 24ms 145s 衆議院 10万件 210ms 190ms 147s 東京都 60万件 1510ms 1050ms 136s 結果 検索結果が多い検索条件では、pg_bigmとpg_trgmとの差が開きやすい 結果となった 考察 次のスライドから
22.
22Copyright © 2013
NTT DATA Corporation pg_bigmとpg_trgmのインデックスの違い キー TID △東 1,2,4 東京 1,2,4 京都 1,2,3,4 都と 1 と京 1,4 都府 1,3 △京 3 京と 4 キー TID △△東 1 △東京 1 東京都 1,2 京都と 1 都と京 1 と京都 1,4 △△京 3 △京都 3 京都府 1,3 : : pg_trgm pg_bigm 1 : 東京都と京都府 2 : 東京都 3 : 京都府 4 : 東京と京都
23.
23Copyright © 2013
NTT DATA Corporation pg_bigmとpg_trgmのインデックスの違い 一つのキーあたりの TIDの数はpg_bigm の方が多い 検索に影響 1 : 東京都と京都府 2 : 東京都 3 : 京都府 4 : 東京と京都 キー TID △東 1,2,4 東京 1,2,4 京都 1,2,3,4 都と 1 と京 1,4 都府 1,3 △京 3 京と 4 pg_bigm キー TID △△東 1 △東京 1 東京都 1,2 京都と 1 都と京 1 と京都 1,4 △△京 3 △京都 3 京都府 1,3 : : pg_trgm
24.
24Copyright © 2013
NTT DATA Corporation キー TID △△東 1 △東京 1 東京都 1,2 京都と 1 都と京 1 と京都 1,4 △△京 3 △京都 3 京都府 1,3 : : pg_trgm 検索への影響 1 : 東京都と京都府 2 : 東京都 3 : 京都府 4 : 東京と京都 1個TID を参照 「京都と」で検索する場合 キー TID △東 1,2,4 東京 1,2,4 京都 1,2,3,4 都と 1 と京 1,4 都府 1,3 △京 3 京と 4 pg_bigm 5個TID を参照
25.
25Copyright © 2013
NTT DATA Corporation 検索時間の検証概要 ~検索文字列②~ 1文字、2文字、3文字…の検索文字列を検索条件とする 検索文字数の変化が、どのように検索時間に影響するかを確認 検索文字列 文字数 結果件数 駅 1文字 150万件 横浜 2文字 40万件 東京都 3文字 60万件 世田谷区 4文字 4万件 秋葉原駅前 5文字 3000件 東京特許許可局 7文字 5000件 とうきょうスカ イツリー 11文字 50件
26.
26Copyright © 2013
NTT DATA Corporation 検索時間結果 検索文字列 結果件数 pg_bigm pg_trgm SeqScan 駅 (1文字) 150万件 2440ms 2173000ms 141s 横浜 (2文字) 40万件 780ms 2182000ms 146s 東京都 (3文字) 60万件 1580ms 1010ms 136s 世田谷区 (4文字) 4万件 80ms 70ms 139s 秋葉原駅前 (5文字) 3000件 20ms 10ms 136s 東京特許許可局 (7文字) 5000件 390ms 140ms 133s とうきょう スカイツリー (11文字) 50件 2780ms 60ms 161s 1文字、2文字の検索では、インデックスが使えるpg_bigmが早い 3文字以上の検索では、pg_trgmの方が早い
27.
27Copyright © 2013
NTT DATA Corporation pg_bigm.gin_key_limitでチューニング pg_bigm.gin_key_limitパラメータで検索時に使用する2- gram文字列の個数の最大数を指定することでチューニングが可 能 「とうきょうスカイツリー」で全文検索をした場合、 2-gram文字列は、 うき,うス,きょ,とう,ょう,イツ,カイ,スカ,ツリ,リー,ー△,△と 12個 pg_bigm.gin_key_limitで この最大数を指定
28.
28Copyright © 2013
NTT DATA Corporation pg_bigm.gin_key_limitでチューニング 0 500 1000 1500 2000 2500 3000 1 3 5 7 9 10 12(全て) 処 理 時 間 pg_bigm.gin_key_limit キーワード:とうきょうスカイツリー pg_bigm pg_trgm <2-gram文字列> うき,うス,きょ,とう,ょう,イツ,カイ,スカ,ツリ,リー,ー△,△と pg_bigm.gin_key_limitの値を調整することで、性能改善が可能 値が1の時は、recheck処理で多くの候補行を除いている(約21万件) 値が3の時はpg_trgmよりも高速に処理ができた
29.
29Copyright © 2013
NTT DATA Corporation データ挿入時間 新規にwikipediaのデータを1000件 (約250kBのテキストファ イル)を挿入した時の WAL発生量 処理時間 を測定 対象 挿入クエリ pg_bigm COPY hoge FROM ‘/home/postgres/10000.txt’; pg_trgm
30.
30Copyright © 2013
NTT DATA Corporation データ挿入時間 pg_bigm pg_trgm WAL発生量 9*16MB 11*16MB 処理時間 10914.53ms 22906.03ms 結果 pg_bigmの方がWALの発生量が小さい pg_bigmの方がデータ挿入時間が短い 考察 pg_trgmではキー登録時にハッシュ変換があるため、処理時 間に差が出た
31.
Copyright © 2013
NTT DATA Corporation 31 pg_bigm独自機能
32.
32Copyright © 2013
NTT DATA Corporation likequery() =# SELECT likequery(‘pg_bigmで性能が200%向上'); likequery ----------- %pg¥_bigmで性能が200¥%向上% (1 row) 文字列内の「%」、「_」、「¥」はエスケープされる AP側で検索文字列のエスケープ処理を作らなくていい 実行例
33.
33Copyright © 2013
NTT DATA Corporation show_bigm() =# SELECT show_bigm('全文検索モジュール'); show_bigm ------------------------------------------------------- {ジュ,モジ,ュー,"ル ",ール,全文,文検,検索,索モ," 全"} (1 row) 実行例
34.
34Copyright © 2013
NTT DATA Corporation pg_bigm.gin_key_limit どのユーザからでも変更可能 2-gram文字列の個数が大きくなりやすいシステムでは、検索性能が劣化しやすい →このパラメータで使用する最大個数を指定することで、性能問題を解決できる ただし、2-gram文字列の個数を減らすとrecheck処理への負担が大きくなること に注意 デフォルトは0(すべて使用) =# SET pg_bigm.gin_key_limit to 10; 実行例
35.
35Copyright © 2013
NTT DATA Corporation pg_bigm.enable_recheck どのユーザからでも変更可能 運用時は必ずON(デフォルト) recheck処理のオーバーヘッドを評価するなどの、デバック時に OFFにする =# SET pg_bigm.enable_recheck to on; 実行例
36.
Copyright © 2013
NTT DATA Corporation 36 デモ
37.
37Copyright © 2013
NTT DATA Corporation デモ 以下のデモを通して、pg_bigmのインストールや、全 文検索実行まで紹介いたします。 pg_bigmインストール 全文検索インデックス作成 全文検索 インデックスを用いた検索 SeqScanとの速度の違い 1文字、2文字での検索
38.
Copyright © 2013
NTT DATA Corporation 38 まとめ
39.
39Copyright © 2013
NTT DATA Corporation まとめ 全文検索を高速に行うために、pg_bigmやpg_trgmを 用いて全文検索用インデックスを作成する インデックスサイズ pg_bigmの方が小さい インデックス作成時間 pg_bigmの方が早い 検索 検索結果数が多いほど、pg_trgmの方が早い →pg_bigm.gin_key_limit等でチューニング可能 1,2文字検索ではインデックスを使えるため pg_bigmの方が早い pg_bigm新バージョンリリース!
40.
40Copyright © 2013
NTT DATA Corporation pg_bigm新バージョンがリリース予定 pg_bigm新バージョンでは主に以下の内容が更新されています 類似度検索も 現在開発中
41.
Copyright © 2011
NTT DATA Corporation Copyright © 2013 NTT DATA Corporation
42.
Copyright © 2013
NTT DATA Corporation 42 参考資料
43.
43Copyright © 2013
NTT DATA Corporation (参考)ワイルドカードの有無による検索の挙動の違い キー TID △A 1, 2 △X 3 AB 1, 2, 3 BC 1, 2, 3 C△ 1, 3 CD 2 D△ 2 XA 1 TID データ 1 ABC 2 ABCD 3 XABC 検索キーワード キー 決定タプル 完全一致 ABC △A AB C△ 1 前方一致 %ABC AB BC C△ 1, 2 中間一致 %ABC% AB BC 1, 2, 3 後方一致 ABC% △A AB BC 1
44.
44Copyright © 2013
NTT DATA Corporation (参考)Recheck処理の必要性 キー TID 東京 1 京都 1 京と 1 : : 検索ワード: ‘%東京都%’ 「東京」 : TID1 「京都」 : TID1 TABL E INDEX 間違った結果を取って きてしまう INDEXを検索 TID決定 Recheck処理で再検査! 例えばこんな時。。 1 東京と京都 : :
45.
45Copyright © 2013
NTT DATA Corporation (参考)pg_bigm.gin_key_limitを変えた時の処理時間 pg_bigm pg_trgm 1 473.04ms 60ms 3 47.64ms 5 467.30ms 7 738.47ms 9 1015.46ms 10 2738.24ms 12(全て) 2737.42ms
46.
46Copyright © 2013
NTT DATA Corporation (参考)部分一致とは? ①2文字分割 「本」 ②インデックススキャン キー TID : : 末尾 100, 200 本日 200, 300 本屋 500 本当 400 札束 200 : : ③TID候補決 定 ④ Recheck キーワード ‘%本%’ 2文字分割後、1文字のキーワードが生成された場合、部分一致を行う関数が実行される (例)検索キーワードが’%東%’の場合など 部分一致では1文字の検索キーワードと各キーの先頭を比較して、一致、不一致を判断す る pg_bigmでは部分一致関数を実装しているため、2文字”以下”の検索ができる