SlideShare a Scribd company logo
1 of 39
Download to read offline
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
MySQLと
PostgreSQLと
日本語全文検索Azure Databaseで
Mroonga・PGroongaを使いたいですよね!?
須藤功平 クリアコード
OSS on Azure非公式コミュニティ #5 『Azure Database』勉強会
2017-06-26
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
アンケート
Azure Databaseで
高速な日本語全文検索を
したい人!
最後にもう一度似たようなことを聞くよ!
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
日本語全文検索:LIKE
LIKE
😄SQL標準
MySQLでもPostgreSQLでも使える
😄少ないデータなら速度は十分
400文字×20万件くらいなら1秒とか
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
LIKEのパフォーマンス
😣少なくないデータ
レスポンスが遅い
😣多くの同時アクセス
スループットがでない
1回のLIKE毎にCPUが専有されるため
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
パフォーマンスの考え方
少ないデータ &&
多くない同時アクセス
LIKEで十分
少なくないデータ ||
多くの同時アクセス
高速化が必要
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
高速日本語全文検索
インデックスで高速化できる
MySQL
5.7から標準対応
PostgreSQL
GIN(組込)+pg_trgm(標準添付)
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
高速?
ベンチマーク!
対象:Wikipedia日本語版
レコード数:約185万件
データサイズ:約7GB
メモリー4GB・SSD250GB(ConoHa)
https://github.com/groonga/wikipedia-search/issues/4
(他人のベンチマークは参考程度)
(検討時はちゃんと実際の環境でベンチマークをとろう!)
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
注意
pg_trgmではなくpg_bigmを使用
pg_bigm:外部プラグイン
性能の傾向はだいたい同じ
1,2文字のときはpg_bigmの方が速い
3文字以上はpg_trgmの方が速い
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
検索1
キーワード:テレビアニメ
(ヒット数:約2万3千件)
InnoDB ngram 3m2s
InnoDB MeCab 6m20s
pg_bigm 4s
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
検索2
キーワード:データベース
(ヒット数:約1万7千件)
InnoDB ngram 36s
InnoDB MeCab 0.03s
pg_bigm 2s
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
検索3
キーワード:PostgreSQL OR MySQL
(ヒット数:約400件)
InnoDB ngram N/A(エラー)
InnoDB MeCab 0.005s
pg_bigm 0.185s
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
検索4
キーワード:日本
(ヒット数:約63万件)
InnoDB ngram 1.3s
InnoDB MeCab 1.3s
pg_bigm 0.84s
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
高速…?
InnoDB FTS MeCab
ハマれば速い
クエリーが複数語だと遅い
pg_bigm
ハマれば速い
ヒット数が多いと遅い
InnoDB FTS ngram:安定して遅い
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
Mroonga・PGroonga
Mroonga(むるんが)
MySQLに
高速日本語全文検索機能を追加する
プロダクト
PGroonga(ぴーじーるんが)
PostgreSQLに
高速日本語全文検索機能を追加する
プロダクト
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
検索1
キーワード:テレビアニメ
(ヒット数:約2万3千件)
InnoDB ngram 3m2s
InnoDB MeCab 6m20s
Mroonga:1 0.11s
pg_bigm 4s
PGroonga:2 0.29s
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
検索2
キーワード:データベース
(ヒット数:約1万7千件)
InnoDB ngram 36s
InnoDB MeCab:1 0.03s
Mroonga:2 0.09s
pg_bigm 2s
PGroonga:3 0.17s
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
検索3
キーワード:PostgreSQL OR MySQL
(ヒット数:約400件)
InnoDB ngram N/A(エラー)
InnoDB MeCab:1 0.005s
Mroonga:2 0.028s
pg_bigm 0.185s
PGroonga:3 0.063s
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
検索4
キーワード:日本
(ヒット数:約63万件)
InnoDB ngram 1.3s
InnoDB MeCab 1.3s
Mroonga:1 0.21s
pg_bigm:2 0.84s
PGroonga 1s
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
検索速度まとめ
Mroonga・PGroonga
安定して速い
InnoDB FTS MeCab・pg_bigm
ハマれば速い
InnoDB FTS ngram
安定して遅い
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
Mroonga(むるんが)
MySQLに
高速日本語
全文検索機能を
追加
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
Mroonga:インデックス作成
普通のMySQLの使い方
CREATE TABLE ... (
...,
FULLTEXT INDEX (column)
) ENGINE=Mroonga;
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
Mroonga:全文検索
普通のMySQLの使い方
SELECT * FROM ...
WHERE
MATCH(column)
AGAINST('キーワード'
IN BOOLEAN MODE);
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
Mroonga:クエリー言語
デフォルトOR→AND
-- ↓AまたはBが含まれていればマッチ
AGAINST('A B' IN BOOLEAN MODE);
AGAINST('+A +B' IN BOOLEAN MODE);
-- ↑↓AとBが含まれていればマッチ
-- ↓Mroongaの拡張
AGAINST('*D+ A B' IN BOOLEAN MODE);
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
Mroonga:Windows
Windows用バイナリーあり
MariaDBとセット
ダウンロードして展開すると
すぐに使える
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
PGroonga
PostgreSQLに
高速日本語
全文検索機能を
追加
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
PGroonga:インデックス
普通のPostgreSQLの使い方
CREATE INDEX name ON texts
USING pgroonga (content);
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
PGroonga:全文検索
専用演算子を使用
SELECT * FROM ...
WHERE
column &? 'キーワード';
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
PGroonga:JSON
JSON内の全テキストを全文検索
CREATE TABLE logs (record jsonb);
CREATE INDEX i ON logs
USING pgroonga (record);
-- ログのどこかに「error」があればマッチ
SELECT * FROM logs
WHERE record &? 'error';
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
PGroonga:入力補完1
検索ボックスで便利なアレ
CREATE TABLE terms
(term text, -- 候補単語
readings text[]); -- ヨミガナ
-- インデックス
CREATE INDEX i ON terms USING pgroonga
(term pgroonga.text_term_search_ops_v2,
readings pgroogna.text_array_term_search_ops_v2);
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
PGroonga:入力補完2
用意するデータ:
候補とカタカナのヨミガナだけ
INSERT INTO terms
VALUES
('牛乳', -- 補完候補
ARRAY['ギュウニュウ', -- ヨミガナ1
'ミルク']); -- ヨミガナ2
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
PGroonga:入力補完3
ローマ字で検索
SELECT term FROM terms
-- 「ギュウニュウ」にヒット
WHERE readings &^~ 'gy';
-- term
-- ------
-- 牛乳
-- (1 row)
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
PGroonga:入力補完4
ひらがなで検索
SELECT term FROM terms
-- 「ギュウニュウ」にヒット
WHERE readings &^~ 'ぎゅう';
-- term
-- ------
-- 牛乳
-- (1 row)
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
PGroonga:入力補完5
カタカナで検索
SELECT term FROM terms
-- 「ギュウニュウ」にヒット
WHERE readings &^~ 'ギュウ';
-- term
-- ------
-- 牛乳
-- (1 row)
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
PGroonga:入力補完6
別のヨミガナでもヒット
SELECT term FROM terms
-- 「ミルク」にヒット
WHERE readings &^~ 'mi';
-- term
-- ------
-- 牛乳
-- (1 row)
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
PGroonga:入力補完7
漢字でもヒット
SELECT term FROM terms
-- 「牛乳」にヒット
WHERE readings &^ '牛';
-- term
-- ------
-- 牛乳
-- (1 row)
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
PGroonga:Windows
Windows用バイナリーあり
商用ログ管理製品
「VVAULT AUDIT」が採用
http://vvault.jp/product/vvault-audit/
アクセスログに対して
ユーザー名・パスを全文検索
決め手:高速・省スペース
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
まとめ
Mroonga(むるんが)
MySQLで高速日本語全文検索!
しかも使いやすいし便利!
PGroonga(ぴーじーるんが)
PostgreSQLで高速日本語全文検索!
しかも使いやすいし便利!
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
アンケート1
Azure Databaseで
高速な日本語全文検索を
したい人!
最初より増えているといいな
MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1
アンケート2
Azure Databaseで
Mroonga・PGroongaを
使いたい人!
Azure Database開発者にアピールして!
どういう風に使いたいか教えて!

More Related Content

What's hot

Oracleからamazon auroraへの移行にむけて
Oracleからamazon auroraへの移行にむけてOracleからamazon auroraへの移行にむけて
Oracleからamazon auroraへの移行にむけてYoichi Sai
 
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)Uptime Technologies LLC (JP)
 
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...Google Cloud Platform - Japan
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選Tomoya Kawanishi
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)NTT DATA Technology & Innovation
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)NTT DATA Technology & Innovation
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Keisuke Takahashi
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムKouhei Sutou
 
MySQLの文字コード事情
MySQLの文字コード事情MySQLの文字コード事情
MySQLの文字コード事情Masahiro Tomita
 
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!NTT DATA Technology & Innovation
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...NTT DATA Technology & Innovation
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

Oracleからamazon auroraへの移行にむけて
Oracleからamazon auroraへの移行にむけてOracleからamazon auroraへの移行にむけて
Oracleからamazon auroraへの移行にむけて
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
 
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
 
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
 
MySQLの文字コード事情
MySQLの文字コード事情MySQLの文字コード事情
MySQLの文字コード事情
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
 
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 

Similar to MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?

MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システムMySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システムKouhei Sutou
 
MroongaとPGroonga
MroongaとPGroongaMroongaとPGroonga
MroongaとPGroongaKouhei Sutou
 
PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版Kouhei Sutou
 
初心者向けMroonga・PGroonga情報
初心者向けMroonga・PGroonga情報初心者向けMroonga・PGroonga情報
初心者向けMroonga・PGroonga情報Kouhei Sutou
 
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーMySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーKouhei Sutou
 
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
 PHPでPostgreSQLとPGroongaを使って高速日本語全文検索! PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!Kouhei Sutou
 
Mroonga・PGroonga導入方法
Mroonga・PGroonga導入方法Mroonga・PGroonga導入方法
Mroonga・PGroonga導入方法Kouhei Sutou
 
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!Kouhei Sutou
 
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムMariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムKouhei Sutou
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べMasahiro Nagano
 
ニコニコニュースと全文検索
ニコニコニュースと全文検索ニコニコニュースと全文検索
ニコニコニュースと全文検索techtalkdwango
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)Kosuke Kida
 
Talking about Microsoft On-premises Data Gateway
Talking about Microsoft On-premises Data GatewayTalking about Microsoft On-premises Data Gateway
Talking about Microsoft On-premises Data GatewayShinya Sakakibara
 
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムPostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムKouhei Sutou
 
20190518 27th-chugoku db-lt-pg12
20190518 27th-chugoku db-lt-pg1220190518 27th-chugoku db-lt-pg12
20190518 27th-chugoku db-lt-pg12Toshi Harada
 
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo NagataInsight Technology, Inc.
 
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告Amazon Web Services Japan
 

Similar to MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!? (20)

MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システムMySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
 
MroongaとPGroonga
MroongaとPGroongaMroongaとPGroonga
MroongaとPGroonga
 
PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版PGroonga 2 - PostgreSQLでの全文検索の決定版
PGroonga 2 - PostgreSQLでの全文検索の決定版
 
初心者向けMroonga・PGroonga情報
初心者向けMroonga・PGroonga情報初心者向けMroonga・PGroonga情報
初心者向けMroonga・PGroonga情報
 
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーMySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
 
PGroongaの実装
PGroongaの実装PGroongaの実装
PGroongaの実装
 
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
 PHPでPostgreSQLとPGroongaを使って高速日本語全文検索! PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
 
Mroonga・PGroonga導入方法
Mroonga・PGroonga導入方法Mroonga・PGroonga導入方法
Mroonga・PGroonga導入方法
 
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
 
Groonga族2015
Groonga族2015Groonga族2015
Groonga族2015
 
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムMariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システム
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
 
ニコニコニュースと全文検索
ニコニコニュースと全文検索ニコニコニュースと全文検索
ニコニコニュースと全文検索
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)
 
Talking about Microsoft On-premises Data Gateway
Talking about Microsoft On-premises Data GatewayTalking about Microsoft On-premises Data Gateway
Talking about Microsoft On-premises Data Gateway
 
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムPostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
 
20190518 27th-chugoku db-lt-pg12
20190518 27th-chugoku db-lt-pg1220190518 27th-chugoku db-lt-pg12
20190518 27th-chugoku db-lt-pg12
 
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
 
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
[よくわかるクラウドデータベース] Amazon RDS for PostgreSQL検証報告
 
Groongaの特徴
Groongaの特徴Groongaの特徴
Groongaの特徴
 

More from Kouhei Sutou

RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowRubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowKouhei Sutou
 
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Kouhei Sutou
 
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowRubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowKouhei Sutou
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアKouhei Sutou
 
Apache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかApache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかKouhei Sutou
 
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataApache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataKouhei Sutou
 
Redmine検索の未来像
Redmine検索の未来像Redmine検索の未来像
Redmine検索の未来像Kouhei Sutou
 
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataApache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataKouhei Sutou
 
Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Kouhei Sutou
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームKouhei Sutou
 
MySQL 8.0でMroonga
MySQL 8.0でMroongaMySQL 8.0でMroonga
MySQL 8.0でMroongaKouhei Sutou
 
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Kouhei Sutou
 
PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!Kouhei Sutou
 
Improve extension API: C++ as better language for extension
Improve extension API: C++ as better language for extensionImprove extension API: C++ as better language for extension
Improve extension API: C++ as better language for extensionKouhei Sutou
 

More from Kouhei Sutou (20)

RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowRubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
 
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
 
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowRubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェア
 
Apache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかApache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのか
 
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataApache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory data
 
Apache Arrow 2019
Apache Arrow 2019Apache Arrow 2019
Apache Arrow 2019
 
Redmine検索の未来像
Redmine検索の未来像Redmine検索の未来像
Redmine検索の未来像
 
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataApache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory data
 
Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
MySQL 8.0でMroonga
MySQL 8.0でMroongaMySQL 8.0でMroonga
MySQL 8.0でMroonga
 
My way with Ruby
My way with RubyMy way with Ruby
My way with Ruby
 
Red Data Tools
Red Data ToolsRed Data Tools
Red Data Tools
 
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
 
PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!
 
Improve extension API: C++ as better language for extension
Improve extension API: C++ as better language for extensionImprove extension API: C++ as better language for extension
Improve extension API: C++ as better language for extension
 
PGroonga & Zulip
PGroonga & ZulipPGroonga & Zulip
PGroonga & Zulip
 

Recently uploaded

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 

Recently uploaded (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 

MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?

  • 1. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 MySQLと PostgreSQLと 日本語全文検索Azure Databaseで Mroonga・PGroongaを使いたいですよね!? 須藤功平 クリアコード OSS on Azure非公式コミュニティ #5 『Azure Database』勉強会 2017-06-26
  • 2. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 アンケート Azure Databaseで 高速な日本語全文検索を したい人! 最後にもう一度似たようなことを聞くよ!
  • 3. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 日本語全文検索:LIKE LIKE 😄SQL標準 MySQLでもPostgreSQLでも使える 😄少ないデータなら速度は十分 400文字×20万件くらいなら1秒とか
  • 4. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 LIKEのパフォーマンス 😣少なくないデータ レスポンスが遅い 😣多くの同時アクセス スループットがでない 1回のLIKE毎にCPUが専有されるため
  • 5. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 パフォーマンスの考え方 少ないデータ && 多くない同時アクセス LIKEで十分 少なくないデータ || 多くの同時アクセス 高速化が必要
  • 6. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 高速日本語全文検索 インデックスで高速化できる MySQL 5.7から標準対応 PostgreSQL GIN(組込)+pg_trgm(標準添付)
  • 7. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 高速? ベンチマーク! 対象:Wikipedia日本語版 レコード数:約185万件 データサイズ:約7GB メモリー4GB・SSD250GB(ConoHa) https://github.com/groonga/wikipedia-search/issues/4 (他人のベンチマークは参考程度) (検討時はちゃんと実際の環境でベンチマークをとろう!)
  • 8. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 注意 pg_trgmではなくpg_bigmを使用 pg_bigm:外部プラグイン 性能の傾向はだいたい同じ 1,2文字のときはpg_bigmの方が速い 3文字以上はpg_trgmの方が速い
  • 9. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 検索1 キーワード:テレビアニメ (ヒット数:約2万3千件) InnoDB ngram 3m2s InnoDB MeCab 6m20s pg_bigm 4s
  • 10. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 検索2 キーワード:データベース (ヒット数:約1万7千件) InnoDB ngram 36s InnoDB MeCab 0.03s pg_bigm 2s
  • 11. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 検索3 キーワード:PostgreSQL OR MySQL (ヒット数:約400件) InnoDB ngram N/A(エラー) InnoDB MeCab 0.005s pg_bigm 0.185s
  • 12. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 検索4 キーワード:日本 (ヒット数:約63万件) InnoDB ngram 1.3s InnoDB MeCab 1.3s pg_bigm 0.84s
  • 13. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 高速…? InnoDB FTS MeCab ハマれば速い クエリーが複数語だと遅い pg_bigm ハマれば速い ヒット数が多いと遅い InnoDB FTS ngram:安定して遅い
  • 14. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 Mroonga・PGroonga Mroonga(むるんが) MySQLに 高速日本語全文検索機能を追加する プロダクト PGroonga(ぴーじーるんが) PostgreSQLに 高速日本語全文検索機能を追加する プロダクト
  • 15. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 検索1 キーワード:テレビアニメ (ヒット数:約2万3千件) InnoDB ngram 3m2s InnoDB MeCab 6m20s Mroonga:1 0.11s pg_bigm 4s PGroonga:2 0.29s
  • 16. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 検索2 キーワード:データベース (ヒット数:約1万7千件) InnoDB ngram 36s InnoDB MeCab:1 0.03s Mroonga:2 0.09s pg_bigm 2s PGroonga:3 0.17s
  • 17. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 検索3 キーワード:PostgreSQL OR MySQL (ヒット数:約400件) InnoDB ngram N/A(エラー) InnoDB MeCab:1 0.005s Mroonga:2 0.028s pg_bigm 0.185s PGroonga:3 0.063s
  • 18. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 検索4 キーワード:日本 (ヒット数:約63万件) InnoDB ngram 1.3s InnoDB MeCab 1.3s Mroonga:1 0.21s pg_bigm:2 0.84s PGroonga 1s
  • 19. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 検索速度まとめ Mroonga・PGroonga 安定して速い InnoDB FTS MeCab・pg_bigm ハマれば速い InnoDB FTS ngram 安定して遅い
  • 20. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 Mroonga(むるんが) MySQLに 高速日本語 全文検索機能を 追加
  • 21. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 Mroonga:インデックス作成 普通のMySQLの使い方 CREATE TABLE ... ( ..., FULLTEXT INDEX (column) ) ENGINE=Mroonga;
  • 22. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 Mroonga:全文検索 普通のMySQLの使い方 SELECT * FROM ... WHERE MATCH(column) AGAINST('キーワード' IN BOOLEAN MODE);
  • 23. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 Mroonga:クエリー言語 デフォルトOR→AND -- ↓AまたはBが含まれていればマッチ AGAINST('A B' IN BOOLEAN MODE); AGAINST('+A +B' IN BOOLEAN MODE); -- ↑↓AとBが含まれていればマッチ -- ↓Mroongaの拡張 AGAINST('*D+ A B' IN BOOLEAN MODE);
  • 24. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 Mroonga:Windows Windows用バイナリーあり MariaDBとセット ダウンロードして展開すると すぐに使える
  • 25. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 PGroonga PostgreSQLに 高速日本語 全文検索機能を 追加
  • 26. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 PGroonga:インデックス 普通のPostgreSQLの使い方 CREATE INDEX name ON texts USING pgroonga (content);
  • 27. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 PGroonga:全文検索 専用演算子を使用 SELECT * FROM ... WHERE column &? 'キーワード';
  • 28. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 PGroonga:JSON JSON内の全テキストを全文検索 CREATE TABLE logs (record jsonb); CREATE INDEX i ON logs USING pgroonga (record); -- ログのどこかに「error」があればマッチ SELECT * FROM logs WHERE record &? 'error';
  • 29. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 PGroonga:入力補完1 検索ボックスで便利なアレ CREATE TABLE terms (term text, -- 候補単語 readings text[]); -- ヨミガナ -- インデックス CREATE INDEX i ON terms USING pgroonga (term pgroonga.text_term_search_ops_v2, readings pgroogna.text_array_term_search_ops_v2);
  • 30. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 PGroonga:入力補完2 用意するデータ: 候補とカタカナのヨミガナだけ INSERT INTO terms VALUES ('牛乳', -- 補完候補 ARRAY['ギュウニュウ', -- ヨミガナ1 'ミルク']); -- ヨミガナ2
  • 31. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 PGroonga:入力補完3 ローマ字で検索 SELECT term FROM terms -- 「ギュウニュウ」にヒット WHERE readings &^~ 'gy'; -- term -- ------ -- 牛乳 -- (1 row)
  • 32. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 PGroonga:入力補完4 ひらがなで検索 SELECT term FROM terms -- 「ギュウニュウ」にヒット WHERE readings &^~ 'ぎゅう'; -- term -- ------ -- 牛乳 -- (1 row)
  • 33. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 PGroonga:入力補完5 カタカナで検索 SELECT term FROM terms -- 「ギュウニュウ」にヒット WHERE readings &^~ 'ギュウ'; -- term -- ------ -- 牛乳 -- (1 row)
  • 34. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 PGroonga:入力補完6 別のヨミガナでもヒット SELECT term FROM terms -- 「ミルク」にヒット WHERE readings &^~ 'mi'; -- term -- ------ -- 牛乳 -- (1 row)
  • 35. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 PGroonga:入力補完7 漢字でもヒット SELECT term FROM terms -- 「牛乳」にヒット WHERE readings &^ '牛'; -- term -- ------ -- 牛乳 -- (1 row)
  • 36. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 PGroonga:Windows Windows用バイナリーあり 商用ログ管理製品 「VVAULT AUDIT」が採用 http://vvault.jp/product/vvault-audit/ アクセスログに対して ユーザー名・パスを全文検索 決め手:高速・省スペース
  • 37. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 まとめ Mroonga(むるんが) MySQLで高速日本語全文検索! しかも使いやすいし便利! PGroonga(ぴーじーるんが) PostgreSQLで高速日本語全文検索! しかも使いやすいし便利!
  • 38. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 アンケート1 Azure Databaseで 高速な日本語全文検索を したい人! 最初より増えているといいな
  • 39. MySQLと PostgreSQLと 日本語全文検索 - Azure Databaseで Mroonga・PGroongaを使いたいですよね!? Powered by Rabbit 2.2.1 アンケート2 Azure Databaseで Mroonga・PGroongaを 使いたい人! Azure Database開発者にアピールして! どういう風に使いたいか教えて!