SlideShare a Scribd company logo
MySQL-5.6で始める全文検索
∼InnoDB FTS編∼
MySQL Casual Talks #4
Kentaro Yoshida
@yoshi_ken
本日の流れ
自己紹介
今回のテーマ
MySQL-5.6時代の全文検索プロダクト紹介
全文検索の動作デモ
ベンチマーク
まとめ
次回予告
自己紹介
よしけんさん
の中の人
研究開発系の
インフラエンジニア
興味分野
MySQL, Fluentd, Ruby,
KVM, DRBD, Nginx,
Redis, MongoDB, etc...
今回のテーマ
MySQL-5.6.4のInnoDBでは全文検索が可能となった
しかしMeCabTokenizerどころかNgramにすら非対応
スペース区切りなら検索できる!(ポジティブ思考)
自前で分かち書きすれば動くのでは?でも速度は?
こんな状況に果敢に挑戦したレポートです
MySQL-5.6時代の
全文検索プロダクト紹介
(mroonga / InnoDB-FTS / SphinxSE)
mroonga
http://mroonga.github.io/ja/docs/characteristic.html
InnoDB Full-Text Search
https://blogs.oracle.com/mysqlinnodb/entry/
innodb_full_text_search_is
SphinxSE
http://sphinxsearch.com/
これは別物
mroonga (groonga)
Tritonn (Senna) の後継プロダクト
参照ロックフリー
完全転置索引を採用
MeCabやN-gramでの分かち書きに対応
N-gramおよびCJKに対応
InnoDB FTS (FullTextSearch)
MySQL-5.6.4から正式対応(しかも標準)
参照ロックフリー
mroonga (groonga) 同様に完全転置索引を採用
空白区切りの単語のみ検索可能
現状、N-gramおよびCJKには非対応
Sphinx SE (Search Engine)
概要 by wikipedia
http://en.wikipedia.org/wiki/
Sphinx_(search_engine)
日本語解説 by IBM
http://www.ibm.com/developerworks/jp/
opensource/library/os-sphinx/?
cmp=dw&cpb=dwope&ct=dwrss&cr=dwrss&
ccy=jp&csr=120911
storage plugin対応
http://sphinxsearch.com/docs/
current.html#sphinxse-using
リアルタイムインデック
ス非対応(疑惑)
http://www.slideshare.net/conmame/
ss-12117195/9
ベンチマーク
http://www.percona.com/files//presentations/
opensql2008_sphinx.pdf
http://www.slideshare.net/billkarwin/practical-full-
text-search-with-my-sql
インストール方法
http://www.howtoforge.com/sphinx-as-
mysql-storage-engine-sphinxse
日本語 (CJK) 対応状況
http://www.ivinco.com/blog/using-sphinx-
search-engine-with-chinese-japanese-and-
korean-language-documents/
MySQL-5.6.10対応状況
http://sphinxsearch.com/bugs/view.php?
id=1419
全文検索デモ (mroonga)
テーブル作成
CREATE TABLE search_with_mroonga (
id INT PRIMARY KEY AUTO_INCREMENT,
subject TEXT,
content TEXT,
FULLTEXT INDEX (subject,content)
) ENGINE = mroonga DEFAULT CHARSET utf8
collate utf8_unicode_ci ;
全文検索デモ (mroonga)
データ登録
INSERT INTO search_with_mroonga
(subject, content) VALUES (
‘MySQL’,
’MySQL(マイエスキューエル)は、オラクルが開
発するRDBMS(リレーショナルデータベースを管理、運
用するためのシステム)の実装の一つである。’
);
全文検索デモ (mroonga)
データ検索
SELECT
*
FROM
search_with_mroonga
WHERE
MATCH(subject,content)
AGAINST('+オラクル' IN BOOLEAN MODE);
全文検索デモ (InnoDB FTS)
テーブル作成
CREATE TABLE search_with_innodb (
id INT PRIMARY KEY AUTO_INCREMENT,
subject TEXT,
content TEXT,
FULLTEXT INDEX (subject,content)
) ENGINE=InnoDB DEFAULT CHARSET utf8
collate utf8_unicode_ci ;
全文検索デモ (InnoDB FTS)
分かち書き with CLI
echo "MySQL(マイエスキューエル)は、オラクルが
開発するRDBMS(リレーショナルデータベースを管理、
運用するためのシステム)の実装の一つである。" |
mecab --output-format-type wakati
全文検索デモ (InnoDB FTS)
分かち書き with Ruby
# -*- encoding: utf-8 -*-
require 'MeCab'
wakati = MeCab::Tagger.new('-O wakati')
puts wakati.parse('本日も良い天気です')
全文検索デモ (InnoDB FTS)
データ登録
INSERT INTO search_with_innodb
(subject, content) VALUES (
‘MySQL’,
’MySQL ( マイエスキューエル ) は 、 オラク
ル が 開発 する RDBMS ( リレーショナル データ
ベース を 管理 、 運用 する ため の システム )
の 実装 の 一つ で ある 。’
);
全文検索デモ (InnoDB FTS)
データ検索
SELECT
*
FROM
search_with_innodb
WHERE
MATCH(subject,content)
AGAINST('+オラクル' IN BOOLEAN MODE);
ベンチマーク
Oracle公式MySQL-5.6.10にmroonga-3.02を入れ、
mroongaとInnoDB-FTSの性能比較試験を行う
書き込み性能
全文検索性能
利用マシン
Intel Xeon L5520 2.27GHz, 16GB Memory
CentOS 6.4 (x86_64)
ベンチマーク
テーブル構成
mroonga ストレージモード
インデックス作成時のオプションにて
分かち書き方法を指定する
search_with_mroonga_ngram
search_with_mroonga_mecab
ベンチマーク
search_with_mroonga_ngram
CREATE TABLE search_with_mroonga_ngram (
id INT PRIMARY KEY AUTO_INCREMENT,
subject TEXT,
content TEXT,
FULLTEXT (subject,content)
) ENGINE=mroonga DEFAULT CHARSET utf8
collate utf8_unicode_ci ;
ベンチマーク
search_with_mroonga_mecab
CREATE TABLE search_with_mroonga_mecab (
id INT PRIMARY KEY AUTO_INCREMENT,
subject TEXT,
content TEXT,
FULLTEXT (subject,content) COMMENT
'parser "TokenMecab"'
) ENGINE=mroonga DEFAULT CHARSET utf8
collate utf8_unicode_ci ;
ベンチマーク
テーブル構成
InnoDB FTS
分かち書き機能を内蔵していないため、
事前にRubyプログラムにて分かち書きを行う
search_with_innodb_ngram
search_with_innodb_mecab
ベンチマーク
search_with_innodb_ngram
CREATE TABLE search_with_innodb_ngram (
id INT PRIMARY KEY AUTO_INCREMENT,
subject TEXT,
content TEXT,
FULLTEXT (subject,content)
) ENGINE=InnoDB DEFAULT CHARSET utf8
collate utf8_unicode_ci ;
ベンチマーク
search_with_innodb_mecab
CREATE TABLE search_with_innodb_mecab (
id INT PRIMARY KEY AUTO_INCREMENT,
subject TEXT,
content TEXT,
FULLTEXT (subject,content)
) ENGINE=InnoDB DEFAULT CHARSET utf8
collate utf8_unicode_ci ;
ベンチ:更新性能
5万件×15回のINSERT所要秒数を計測し、
件数が増えることでの性能劣化を測ります
サンプルデータには、dbpedia.org より入手した
Wikipedia日本語版の75万件の記事を利用します
ベンチ:更新性能
tsvデータの容量
ngramはbi-gramのため、2倍以上の容量となります。
$ ls -sh wikipedia_*.tsv
408M wikipedia_mecab.tsv
798M wikipedia_ngram.tsv
345M wikipedia_plain.tsv
ベンチ:更新性能
クエリ例
LOAD DATA LOCAL INFILE
'/path/to/wikipedia_mecab.tsv'
INTO TABLE search_with_innodb_mecab
FIELDS TERMINATED BY 't'
LINES TERMINATED BY 'n'
(id,subject,content);
ベンチ:更新性能
0
1000
2000
3000
4000
75万件の登録所要時間(秒)
3054.54
329.8
629.57
178.01
mroonga mecab
InnoDB FTS mecab
mroonga ngram
InnoDB FTS ngram
tsvデータを5万行毎のファイル15個に分割し、
LOAD DATA LOCAL INFILEを立て続けに行った際、
速度がどのように変化していくかを計測しました。
ベンチ:更新性能
0
100
200
300
400
50k 100k 150k 200k 250k 300k 350k 400k 450k 500k 550k 600k 650k 700k 750k
mroonga mecab
InnoDB FTS mecab
mroonga ngram
InnoDB FTS ngram
5万件単位での書き込み所要時間(秒)
5万件単位での書き込み所要時間を計測したところ、
InnoDB FTS ngramはダントツで遅いため、
グラフから外し、MeCabのみで比較します。
ベンチ:更新性能
0
15
30
45
60
50k 100k 150k 200k 250k 300k 350k 400k 450k 500k 550k 600k 650k 700k 750k
mroonga mecab
InnoDB FTS mecab
5万件単位での書き込み所要時間(秒)
ベンチ:更新性能
結果
mroongaがダントツで最速
InnoDB FTSもMeCabデータを入れるなら
業務要件次第では実用的な範囲
ベンチ:全文検索性能
5万件の単語を直列に全文検索する際の所要秒数を
計測し、全文検索性能の比較を行います
単語データは、MeCab-IPA辞書の名詞版(固有名
詞・地域)から5万件を抽出しています
$ nkf -w src/mecab-ipadic-2.7.0-20070801/
Noun.place.csv | cut -d"," -f1 | sort |
uniq | sort -R | head -n 50000
ベンチ:全文検索性能
クエリ例
SELECT
SQL_NO_CACHE
count(*)
FROM
search_with_innodb_mecab
WHERE
match(subject,content)
against('+表参道' IN BOOLEAN MODE);
ベンチ:全文検索性能
1ワード
0 50 100 150 200
61.638
187.944
55.152
163.824
mroonga mecab
InnoDB FTS mecab
mroonga ngram
InnoDB FTS ngram
75万レコードに対して5万単語を順次SELECTした際の実行所要時間(秒)
5万単語を用意して直列に順次検索を行いましたが、
該当件数が0件となる単語が半数ある事を補足します。
search_with_mroonga_mecab:
Noresult count: 33658
search_with_innodb_mecab:
Noresult count: 24950
search_with_mroonga_ngram:
Noresult count: 23129
search_with_innodb_ngram:
Noresult count: 35500
まとめ
MySQL-5.6.4 以降で使えるようになった
InnoDB FTSは意外と実用的です
InnoDB FTSを使うならアプリ側で
MeCabを用いた分かち書きをしましょう
MySQL単体で全文検索を実現したい場合の
mroonga以外の選択肢が、1つ増えました
最後に
詳細な解説記事は追ってアップします。
その際はTwitterにてお知らせします。
https://twitter.com/yoshi_ken
http://d.hatena.ne.jp/yoshi-ken/
次回予告
次回予告
Tritonn (MySQL-5.0.87+Senna)からの
mroonga (MySQL-5.6) 移行ガイド
ご清聴ありがとうございました。
Ad

More Related Content

What's hot (20)

MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
yoku0825
 
Railsで作るBFFの功罪
Railsで作るBFFの功罪Railsで作るBFFの功罪
Railsで作るBFFの功罪
Recruit Lifestyle Co., Ltd.
 
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
Kouhei Sutou
 
SQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリーSQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリー
ke-m kamekoopa
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
 
俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment
Sunao Tomita
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザ
ktateish
 
Javaバイトコード入門
Javaバイトコード入門Javaバイトコード入門
Javaバイトコード入門
Kota Mizushima
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
 
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
ichirin2501
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
Kouhei Sutou
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
 
20160526 依存関係逆転の原則
20160526 依存関係逆転の原則20160526 依存関係逆転の原則
20160526 依存関係逆転の原則
bonjin6770 Kurosawa
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
Masahiko Sawada
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介
Shinya Sugiyama
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Masahito Zembutsu
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例
Hirohito Kato
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
yoku0825
 
いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!いろいろ考えると日本語の全文検索もMySQLがいいね!
いろいろ考えると日本語の全文検索もMySQLがいいね!
Kouhei Sutou
 
SQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリーSQLアンチパターン - ナイーブツリー
SQLアンチパターン - ナイーブツリー
ke-m kamekoopa
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
 
俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment
Sunao Tomita
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザ
ktateish
 
Javaバイトコード入門
Javaバイトコード入門Javaバイトコード入門
Javaバイトコード入門
Kota Mizushima
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
 
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
ichirin2501
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
Kouhei Sutou
 
20160526 依存関係逆転の原則
20160526 依存関係逆転の原則20160526 依存関係逆転の原則
20160526 依存関係逆転の原則
bonjin6770 Kurosawa
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
Masahiko Sawada
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介
Shinya Sugiyama
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Masahito Zembutsu
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例
Hirohito Kato
 

Similar to MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」 (20)

MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMySQL 5.5 Update #denatech
MySQL 5.5 Update #denatech
Mikiya Okuno
 
ニコニコニュースと全文検索
ニコニコニュースと全文検索ニコニコニュースと全文検索
ニコニコニュースと全文検索
techtalkdwango
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
Masahiro Nagano
 
MySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyondMySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyond
Mikiya Okuno
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
Ryusuke Kajiyama
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
 
Djangoのススメ
DjangoのススメDjangoのススメ
Djangoのススメ
Alisue Lambda
 
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?
Hiroaki Kubota
 
MongoDB勉強会資料
MongoDB勉強会資料MongoDB勉強会資料
MongoDB勉強会資料
Hiromune Shishido
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
Kentaro Yoshida
 
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
Insight Technology, Inc.
 
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
yoyamasaki
 
Osc2012.dbに行ってきました
Osc2012.dbに行ってきましたOsc2012.dbに行ってきました
Osc2012.dbに行ってきました
Masaru Kobashigawa
 
デザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングデザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリング
kei takakuda
 
OSC2015nagoya
OSC2015nagoyaOSC2015nagoya
OSC2015nagoya
Miki Shimogai
 
memcached + selinux engine
memcached + selinux enginememcached + selinux engine
memcached + selinux engine
Kohei KaiGai
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
 
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
Mikiya Okuno
 
JIT のコードを読んでみた
JIT のコードを読んでみたJIT のコードを読んでみた
JIT のコードを読んでみた
y-uti
 
MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMySQL 5.5 Update #denatech
MySQL 5.5 Update #denatech
Mikiya Okuno
 
ニコニコニュースと全文検索
ニコニコニュースと全文検索ニコニコニュースと全文検索
ニコニコニュースと全文検索
techtalkdwango
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
Masahiro Nagano
 
MySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyondMySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyond
Mikiya Okuno
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
Ryusuke Kajiyama
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
 
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?
Hiroaki Kubota
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
Kentaro Yoshida
 
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
Insight Technology, Inc.
 
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
yoyamasaki
 
Osc2012.dbに行ってきました
Osc2012.dbに行ってきましたOsc2012.dbに行ってきました
Osc2012.dbに行ってきました
Masaru Kobashigawa
 
デザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングデザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリング
kei takakuda
 
memcached + selinux engine
memcached + selinux enginememcached + selinux engine
memcached + selinux engine
Kohei KaiGai
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
 
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
Mikiya Okuno
 
JIT のコードを読んでみた
JIT のコードを読んでみたJIT のコードを読んでみた
JIT のコードを読んでみた
y-uti
 
Ad

More from Kentaro Yoshida (12)

Improve data engineering work with Digdag and Presto UDF
Improve data engineering work with Digdag and Presto UDFImprove data engineering work with Digdag and Presto UDF
Improve data engineering work with Digdag and Presto UDF
Kentaro Yoshida
 
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
Kentaro Yoshida
 
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Kentaro Yoshida
 
トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編
Kentaro Yoshida
 
Hivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスHivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービス
Kentaro Yoshida
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
 
MySQLユーザ視点での小さく始めるElasticsearch
MySQLユーザ視点での小さく始めるElasticsearchMySQLユーザ視点での小さく始めるElasticsearch
MySQLユーザ視点での小さく始めるElasticsearch
Kentaro Yoshida
 
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasualFluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Kentaro Yoshida
 
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
Kentaro Yoshida
 
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
Kentaro Yoshida
 
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Kentaro Yoshida
 
Improve data engineering work with Digdag and Presto UDF
Improve data engineering work with Digdag and Presto UDFImprove data engineering work with Digdag and Presto UDF
Improve data engineering work with Digdag and Presto UDF
Kentaro Yoshida
 
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
Kentaro Yoshida
 
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Kentaro Yoshida
 
トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編
Kentaro Yoshida
 
Hivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスHivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービス
Kentaro Yoshida
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
 
MySQLユーザ視点での小さく始めるElasticsearch
MySQLユーザ視点での小さく始めるElasticsearchMySQLユーザ視点での小さく始めるElasticsearch
MySQLユーザ視点での小さく始めるElasticsearch
Kentaro Yoshida
 
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasualFluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Kentaro Yoshida
 
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
Kentaro Yoshida
 
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
Kentaro Yoshida
 
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Kentaro Yoshida
 
Ad

MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」