SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7 InnoDB
日本語全文検索(その2)
Yoshiaki Yamasaki / 山﨑 由章
MySQL Senior Sales Consultant, Asia Pacific and Japan
updated: 2016/09/30
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Safe Harbor Statement
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき
ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメントするも
のではない為、購買決定を行う際の判断材料になさらないで下さい。
オラクル製品に関して記載されている機能の開発、リリースおよび時期については、
弊社の裁量により決定されます。
2
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
前回の資料
• MySQL 5.7 InnoDB 日本語全文検索
http://www.slideshare.net/yoyamasaki/20160209-inno-dbftsjp
3
※次回の資料も以下で公開しています
MySQL 5.7 InnoDB 日本語全文検索(その3)
http://www.slideshare.net/yoyamasaki/20160929-inno-dbftsjp
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
少しだけ復習します
4
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
全文検索機能の仕組み
5
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
全文検索インデックス
• トークンと文章の関係を表現した転置インデックス
6
This movie is
about a boy
going to war.
This movie
is about a
girl starting
an auto-
shop.
This movie is
about
flowers.
a about
an are as
at be by
com de
en for
from
how i in
is it la of
on or
that the
this to
was
what
when
where
who will
with und
the
www
Min
Token
Size
Max
Token
Size
Document 1
Document 2
Document 3
Stop Words Token Size
Full Text / Inverted Index
ID TOKEN DOCUMENT
1 movie 1,2,3
2 boy 1
3 girl 2
4 going 1
5 starting 2
6 war 1
7 auto-shop 2
8 flowers 3
Token FiltersDocuments
Tokenizer
Tokenizer
Indexer
Indexer
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
InnoDB全文検索機能の日本語対応
7
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
全文検索機能の日本語対応とは?
• 日本語の文章を字句解析して、全文検索用のインデックスを作成できる
– 英語などは、スペースを区切り文字として字句解析できるが、
日本語には区切り文字が無いため、追加の字句解析機能が必要
8
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
MySQL 5.7でサポートされた日本語の字句解析方法
• N-gram: 一定の文字数で切りだして字句解析する手法
– デフォルトではbi-gram(2文字単位)
• MeCab:オープンソースの形態素解析エンジン
– 日本語の辞書をベースに字句解析する
9
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
MySQL 5.7での強化点
• N-gramによる日本語、中国語、韓国語サポート
– N文字区切りでトークンを検出
10
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE ORDER BY doc_id, position LIMIT 10;
+--------+--------------+-------------+-----------+--------+----------+
| WORD | FIRST_DOC_ID | LAST_DOC_ID | DOC_COUNT | DOC_ID | POSITION |
+--------+--------------+-------------+-----------+--------+----------+
| ロー | 1 | 15 | 2 | 1 | 0 |
| ール | 1 | 16 | 3 | 1 | 3 |
| ルと | 1 | 1 | 1 | 1 | 6 |
| とグ | 1 | 1 | 1 | 1 | 9 |
| グル | 1 | 7 | 2 | 1 | 12 |
| ルー | 1 | 16 | 3 | 1 | 15 |
| ープ | 1 | 7 | 2 | 1 | 18 |
| プベ | 1 | 1 | 1 | 1 | 21 |
| 環境 | 1 | 1 | 1 | 1 | 21 |
| ベー | 1 | 7 | 4 | 1 | 24 |
+--------+--------------+-------------+-----------+--------+----------+
10 rows in set (0.01 sec)c
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
MySQL 5.7での強化点
• MeCabによる日本語サポート
– MeCab(オープンソースの日本語辞書)を使ってトークンを検出
11
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE ORDER BY doc_id, position LIMIT 10;
+--------------------+--------------+-------------+-----------+--------+----------+
| WORD | FIRST_DOC_ID | LAST_DOC_ID | DOC_COUNT | DOC_ID | POSITION |
+--------------------+--------------+-------------+-----------+--------+----------+
| ロール | 1 | 1 | 1 | 1 | 0 |
| グループ | 1 | 7 | 2 | 1 | 12 |
| 環境 | 1 | 1 | 1 | 1 | 21 |
| ベース | 1 | 7 | 2 | 1 | 24 |
| アクセス | 1 | 1 | 1 | 1 | 36 |
| コントロール | 1 | 1 | 1 | 1 | 48 |
| により | 1 | 1 | 1 | 1 | 66 |
| mysql | 1 | 16 | 12 | 1 | 78 |
| dba | 1 | 16 | 4 | 1 | 83 |
| きめ細か | 1 | 1 | 1 | 1 | 91 |
+--------------------+--------------+-------------+-----------+--------+----------+
10 rows in set (0.00 sec)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
その他
• InnoDB日本語全文検索機能の使用方法は、前回の資料参照
– 事前準備
– 全文検索インデックス作成方法
– 転置インデックス確認方法
• MySQL 5.7では、日本語全文検索がお手軽に使用できる
12
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
復習終わり
13
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
全文検索方法
14
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
全文検索関数を使用して検索する
• 例
15
SELECT * FROM mecab.articles
WHERE MATCH (description)
AGAINST ('ディスク' IN BOOLEAN MODE)¥G
SELECT * FROM mecab.articles
WHERE MATCH (description)
AGAINST ('+ディスク +トレンド' IN BOOLEAN MODE)¥G
SELECT * FROM mecab.articles
WHERE MATCH (description)
AGAINST ('+ディスク -トレンド' IN BOOLEAN MODE)¥G
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 16
全文検索関数
MATCH (col1,col2,...) AGAINST (expr [search_modifier])
search_modifier:
{
IN NATURAL LANGUAGE MODE
| IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION
| IN BOOLEAN MODE
| WITH QUERY EXPANSION
}
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
全文検索の種類
• 自然言語検索
– IN NATURAL LANGUAGE MODE 修飾子を使用
• ブール検索
– IN BOOLEAN MODE 修飾子を使用
– 基本的にブール検索を使用する
• クエリー拡張検索
– IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION 修飾子
または WITH QUERY EXPANSION 修飾子 を使用
– 自然言語検索を拡張したもの
17
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
全文検索の種類
• 自然言語検索
– 検索されるテキストは、検索トークンの和集合に変換される
– 例(MeCabの場合)
• '日本の首都' ⇒ '日本' or 'の' or '首都'
18
mysql> SELECT * FROM articles WHERE MATCH(title)
AGAINST('日本の首都' IN NATURAL LANGUAGE MODE);
+------------+--------------------------------------+
| FTS_DOC_ID | title |
+------------+--------------------------------------+
| 1 | 東京都は日本の首都です |
| 2 | 京都と大阪は日本の府です |
+------------+--------------------------------------+
2 rows in set (0.00 sec)
「首都」が含まれていないものも
検索結果に出てきている
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
全文検索の種類
• ブール検索
– 検索されるテキストは、フレーズ検索に変換される
– 例(MeCabの場合)
• '日本の首都' ⇒ '"日本 の 首都"' ※'日本' ⇒ 'の' ⇒ '首都' の順番に全て一致する文章
19
mysql> SELECT * FROM articles WHERE MATCH(title)
AGAINST('日本の首都' IN BOOLEAN MODE);
+------------+-----------------------------------+
| FTS_DOC_ID | title |
+------------+-----------------------------------+
| 1 | 東京都は日本の首都です |
+------------+-----------------------------------+
1 row in set (0.01 sec)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
ブール検索
• 検索文字列の先頭または末尾に指定する文字が特別な意味を持つ
• 例)
– + : AND
– - : NOT
– [演算子なし] : 暗黙的にOR
– () : 単語をグループ化する
– > : 関連性ランキングへの単語の貢献度をプラスする
– < : 関連性ランキングへの単語の貢献度をマイナスする
– ~ : 関連性ランキングへの単語の貢献度をマイナスする(ノイズ除去)
20
※参考マニュアル 13.9.2 Boolean Full-Text Searches
https://dev.mysql.com/doc/refman/5.7/en/fulltext-boolean.html
12.9.2 ブール全文検索
https://dev.mysql.com/doc/refman/5.6/ja/fulltext-boolean.html
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
ブール検索の指定例
• '+監視 +パフォーマンス'
– 「監視」と「パフォーマンス」を両方含む
• '+監視 -パフォーマンス'
– 「監視」は含むが「パフォーマンス」は含まない
• '監視 パフォーマンス'
– 「監視」もしくは「パフォーマンス」のいずれかを含む
• '+監視 +(パフォーマンス クラウド)'
– 「監視」を含み、なおかつ「パフォーマンス」もしくは「クラウド」のいずれかを含む
21
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
関連性ランキング
• InnoDBでは TF-IDF のランキングアルゴリズムに基づいて検索ワードと
ドキュメントの関連性にランクが付けられる
– ドキュメントの中で頻繁に出現する単語は重要
(TF:Term Frequency)
– 多くのドキュメントにおいて出現頻度の高い単語は重要では無い
(IDF:Inverse Document Frequency)
• 全文検索機能を使えば、検索ワードと関連性の強いドキュメントを
簡単に探すことが出来る
22
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
関連性ランキングの確認例
23
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
サンプルテーブル
• サンプルテーブルのテーブル定義
– description列にMeCabパーサーを使用して全文検索インデックスを作成
• サンプルテーブルに格納した文章
– MySQL Enterprise Monitorのページ(※)に記載されている説明文をtitle列、
description列に格納
※https://www-jp.mysql.com/products/enterprise/monitor.html
24
mysql> show create table articles¥G
*************************** 1. row ***************************
Table: articles
Create Table: CREATE TABLE `articles` (
`FTS_DOC_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(100) DEFAULT NULL,
`description` text,
PRIMARY KEY (`FTS_DOC_ID`),
FULLTEXT KEY `mecab_idx` (`description`) /*!50100 WITH PARSER `mecab` */
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4
1 row in set (0.00 sec)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
サンプルテーブルに格納した文章
25
※格納した文章の一覧を、資料後半のAppendix部分に掲載しています
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
関連性ランキングのスコアの確認例
• 選択リストに全文検索関数を含め、その列でソートする
26
SELECT FTS_DOC_ID,
MATCH (description) AGAINST ('<検索ワード>' IN BOOLEAN MODE) AS score
FROM articles ORDER BY score DESC;
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 27
IDFにより、レア度が考慮される(「監視」で検索)
mysql> SELECT FTS_DOC_ID, MATCH (description) AGAINST ('監視' IN BOOLEAN MODE)
-> AS score FROM articles ORDER BY score DESC;
+------------+---------------------+
| FTS_DOC_ID | score |
+------------+---------------------+
| 3 | 0.07628998160362244 |
| 4 | 0.07628998160362244 |
| 5 | 0.07628998160362244 |
| 6 | 0.07628998160362244 |
| 7 | 0.07628998160362244 |
| 9 | 0.07628998160362244 |
| 11 | 0.07628998160362244 |
| 12 | 0.07628998160362244 |
| 15 | 0.07628998160362244 |
| 1 | 0 |
| 2 | 0 |
| 8 | 0 |
| 10 | 0 |
| 13 | 0 |
| 14 | 0 |
| 16 | 0 |
| 17 | 0 |
+------------+---------------------+
17 rows in set (0.00 sec)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 28
IDFにより、レア度が考慮される(「クラウド」で検索)
mysql> SELECT FTS_DOC_ID, MATCH (description) AGAINST ('クラウド' IN BOOLEAN MODE)
-> AS score FROM articles ORDER BY score DESC;
+------------+-------------------+
| FTS_DOC_ID | score |
+------------+-------------------+
| 2 | 1.727639079093933 |
| 7 | 1.727639079093933 |
| 1 | 0 |
| 3 | 0 |
| 4 | 0 |
| 5 | 0 |
| 6 | 0 |
| 8 | 0 |
| 9 | 0 |
| 10 | 0 |
| 11 | 0 |
| 12 | 0 |
| 13 | 0 |
| 14 | 0 |
| 15 | 0 |
| 16 | 0 |
| 17 | 0 |
+------------+-------------------+
17 rows in set (0.00 sec)
2つのドキュメントにしか含まれていないため、
スコアが高くなる
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 29
TFにより、出現頻度が考慮される(「パフォーマンス」で検索)
mysql> SELECT FTS_DOC_ID, MATCH (description) AGAINST ('パフォーマンス' IN BOOLEAN MODE)
-> AS score FROM articles ORDER BY score DESC;
+------------+---------------------+
| FTS_DOC_ID | score |
+------------+---------------------+
| 5 | 0.2288699448108673 |
| 11 | 0.15257996320724487 |
| 17 | 0.15257996320724487 |
| 1 | 0.07628998160362244 |
| 8 | 0.07628998160362244 |
| 9 | 0.07628998160362244 |
| 10 | 0.07628998160362244 |
| 12 | 0.07628998160362244 |
| 15 | 0.07628998160362244 |
| 2 | 0 |
| 3 | 0 |
| 4 | 0 |
| 6 | 0 |
| 7 | 0 |
| 13 | 0 |
| 14 | 0 |
| 16 | 0 |
+------------+---------------------+
17 rows in set (0.00 sec)
出現頻度が高いドキュメントはスコアが高くなる
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
TFにより、出現頻度が考慮される(「パフォーマンス」で検索)
30
mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=5¥G
*************************** 1. row ***************************
FTS_DOC_ID: 5
description: MySQL Enterprise Monitor は MySQL クエリーとパフォーマンス関連のサーバー指標を継続的に監視
します。基準となるパフォーマンスのトレンドから大きな逸脱があった場合にアラートを受信します。また、ベストプラクティス・アドバイ
ザは、パフォーマンスを向上させるための構成やパラメータ設定の変更を提案します。
1 row in set (0.00 sec)
mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=11¥G
*************************** 1. row ***************************
FTS_DOC_ID: 11
description: MySQL のパフォーマンスに影響を及ぼす重要な InnoDB 指標を監視します。非効率な索引の使用、ロックの
問題、InnoDB バッファ・プール の使用に関するアラートを受信して、現在のパフォーマンスや解析されたトレンドに基づいた
InnoDB 構成を改善する方法についてのヒントを得ることができます。
1 row in set (0.00 sec)
mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=1¥G
*************************** 1. row ***************************
FTS_DOC_ID: 1
description: MySQL Enterprise Monitorは、自動的にレプリケーション・トポロジを検出し、パフォーマンス、可用性、マ
スター/スレーブの状態を表示します。MySQL 5.7にも対応済みで、レプリケーション・ダッシュボードからレプリケーションの各種指
標を確認できます。また、トポロジ・ビューにより、レプリケーション・グループやレプリケーション構成、それぞれのノードの状態など
を素早く確認できます。単純なレプリケーション構成だけでなく、マルチソース・レプリケーションや、循環型、階層型といった複雑な
構成にも対応しています。
1 row in set (0.00 sec)
3回含まれている
2回含まれている
1回含まれている
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 31
重みづけの変更例
mysql> SELECT FTS_DOC_ID, MATCH (description) AGAINST ('+パフォーマンス' IN BOOLEAN MODE)
-> AS score FROM articles ORDER BY score DESC;
+------------+---------------------+
| FTS_DOC_ID | score |
+------------+---------------------+
| 5 | 0.2288699448108673 |
| 11 | 0.15257996320724487 |
| 17 | 0.15257996320724487 |
| 1 | 0.07628998160362244 |
| 8 | 0.07628998160362244 |
| 9 | 0.07628998160362244 |
| 10 | 0.07628998160362244 |
| 12 | 0.07628998160362244 |
| 15 | 0.07628998160362244 |
| 2 | 0 |
<中略>
| 16 | 0 |
+------------+---------------------+
17 rows in set (0.00 sec)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 32
重みづけの変更例(「クエリー」を含むドキュメントのスコアを上げる)
mysql> SELECT FTS_DOC_ID, MATCH (description)
-> AGAINST ('+パフォーマンス >クエリー' IN BOOLEAN MODE) AS score
-> FROM articles ORDER BY score DESC;
+------------+---------------------+
| FTS_DOC_ID | score |
+------------+---------------------+
| 10 | 2.803929090499878 |
| 5 | 2.0926895141601562 |
| 11 | 0.15257996320724487 |
| 17 | 0.15257996320724487 |
| 1 | 0.07628998160362244 |
| 8 | 0.07628998160362244 |
| 9 | 0.07628998160362244 |
| 12 | 0.07628998160362244 |
| 15 | 0.07628998160362244 |
| 2 | 0 |
<中略>
| 16 | 0 |
+------------+---------------------+
17 rows in set (0.00 sec)
「クエリー」が含まれるドキュメントのスコアが上がる
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 33
重みづけの変更例(「クエリー」を含むドキュメントのスコアを上げる)
mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=5¥G
*************************** 1. row ***************************
FTS_DOC_ID: 5
description: MySQL Enterprise Monitor は MySQL クエリーとパフォーマンス関連のサーバー指標を継続的に監視
します。基準となるパフォーマンスのトレンドから大きな逸脱があった場合にアラートを受信します。また、ベストプラクティス・アドバイ
ザは、パフォーマンスを向上させるための構成やパラメータ設定の変更を提案します。
1 row in set (0.00 sec)
mysql>
mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=10¥G
*************************** 1. row ***************************
FTS_DOC_ID: 10
description: 開発者および DBA は、相関グラフを使用して実行時パラメータ(サーバー負荷、スレッド統計、RAM 使用状況
など)を、その時点で実行中であったクエリーと比較できます。グラフ上のタイムスライスを強調表示するだけで、もっとも負荷のかか
るクエリーを発見し、より大きなパフォーマンス問題の潜在的な原因を特定します。
1 row in set (0.00 sec)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 34
重みづけの変更例(「ロック」を含むドキュメントのスコアを下げる)
mysql> SELECT FTS_DOC_ID, MATCH (description)
-> AGAINST ('+パフォーマンス >クエリー <ロック' IN BOOLEAN MODE) AS score
-> FROM articles ORDER BY score DESC;
+------------+----------------------+
| FTS_DOC_ID | score |
+------------+----------------------+
| 10 | 2.803929090499878 |
| 5 | 2.0926895141601562 |
| 17 | 0.15257996320724487 |
| 1 | 0.07628998160362244 |
| 8 | 0.07628998160362244 |
| 9 | 0.07628998160362244 |
| 12 | 0.07628998160362244 |
| 15 | 0.07628998160362244 |
| 11 | 0.016399502754211426 |
| 2 | 0 |
<中略>
| 16 | 0 |
+------------+----------------------+
17 rows in set (0.00 sec)
「ロック」が含まれるドキュメントのスコアが下がる
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 35
重みづけの変更例(「ロック」を含むドキュメントのスコアを下げる)
mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=11¥G
*************************** 1. row ***************************
FTS_DOC_ID: 11
description: MySQL のパフォーマンスに影響を及ぼす重要な InnoDB 指標を監視します。非効率な索引の使用、ロックの
問題、InnoDB バッファ・プール の使用に関するアラートを受信して、現在のパフォーマンスや解析されたトレンドに基づいた
InnoDB 構成を改善する方法についてのヒントを得ることができます。
1 row in set (0.00 sec)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 36
「<」と「~」の違い
mysql> SELECT FTS_DOC_ID, MATCH (description) AGAINST ('監視 <パフォーマンス' IN BOOLEAN MODE)
AS score FROM articles ORDER BY score DESC;
+------------+---------------------+
| FTS_DOC_ID | score |
+------------+---------------------+
| 3 | 0.07628998160362244 |
| 4 | 0.07628998160362244 |
<中略>
| 14 | 0 |
| 16 | 0 |
| 5 | -0.6948400735855103 |
| 11 | -0.7711300253868103 |
| 9 | -0.8474199771881104 |
| 12 | -0.8474199771881104 |
| 15 | -0.8474199771881104 |
| 17 | -0.8474200367927551 |
| 1 | -0.9237099885940552 |
| 8 | -0.9237099885940552 |
| 10 | -0.9237099885940552 |
+------------+---------------------+
17 rows in set (0.00 sec)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 37
「<」と「~」の違い
mysql> SELECT FTS_DOC_ID, MATCH (description) AGAINST ('監視 ~パフォーマンス' IN BOOLEAN MODE)
AS score FROM articles ORDER BY score DESC;
+------------+---------------------+
| FTS_DOC_ID | score |
+------------+---------------------+
| 3 | 0.07628998160362244 |
| 4 | 0.07628998160362244 |
<中略>
| 8 | 0 |
| 10 | 0 |
| 13 | 0 |
| 14 | 0 |
| 16 | 0 |
| 17 | 0 |
| 5 | -0.6948400735855103 |
| 11 | -0.7711300253868103 |
| 9 | -0.8474199771881104 |
| 12 | -0.8474199771881104 |
| 15 | -0.8474199771881104 |
+------------+---------------------+
17 rows in set (0.00 sec)
「パフォーマンス」が含まれていても、「監視」が
含まれていないドキュメントのスコアは下がらない
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 38
「<」と「~」の違い
mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=12¥G
*************************** 1. row ***************************
FTS_DOC_ID: 12
description: パフォーマンスと可用性に影響を及ぼす重要な MySQL Cluster 指標を監視します。グラフを通じて履歴情
報を確認し、データ・ノードのキャッシュ・ヒット率が低い、データ・メモリが枯渇しそうである、ノード障害が発生しそうであるといった潜
在的な問題に関するアラートを受信できます。
1 row in set (0.00 sec)
mysql>
mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=10¥G
*************************** 1. row ***************************
FTS_DOC_ID: 10
description: 開発者および DBA は、相関グラフを使用して実行時パラメータ(サーバー負荷、スレッド統計、RAM 使用状況
など)を、その時点で実行中であったクエリーと比較できます。グラフ上のタイムスライスを強調表示するだけで、もっとも負荷のかか
るクエリーを発見し、より大きなパフォーマンス問題の潜在的な原因を特定します。
1 row in set (0.00 sec)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Appendix
39
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 40
サンプルテーブルに格納した文章
mysql> SELECT * FROM mecab.articles¥G
*************************** 1. row ***************************
FTS_DOC_ID: 1
title: レプリケーション・ダッシュボード
description: MySQL Enterprise Monitorは、自動的にレプリケーション・トポロジを検出し、パフォーマンス、可用性、マ
スター/スレーブの状態を表示します。MySQL 5.7にも対応済みで、レプリケーション・ダッシュボードからレプリケーションの各種指
標を確認できます。また、トポロジ・ビューにより、レプリケーション・グループやレプリケーション構成、それぞれのノードの状態など
を素早く確認できます。単純なレプリケーション構成だけでなく、マルチソース・レプリケーションや、循環型、階層型といった複雑な
構成にも対応しています。
*************************** 2. row ***************************
FTS_DOC_ID: 2
title: アクセス制御リスト (ACLs)
description: ロールとグループベースのアクセスコントロールにより、MySQL DBA にきめ細かなセキュリティポリシーを定義
するための簡単な方法を提供します。アクセス制御リストは、MySQL Enterprise Monitor をマルチテナント環境やクラウド環
境で使用している場合のアカウント管理を簡素化します。
*************************** 3. row ***************************
FTS_DOC_ID: 3
title: MySQL Enterprise Firewall 監視
description: グラフとレポートから MySQL Enterprise Firewall のアクティビティを容易に監視でき、MySQL
Server を特定のデータベース攻撃から守ることに役立ちます。ベスト・プラクティス・アドバイザーは、潜在的なセキュリティの脅威
を検知した時に警告を通知し、MySQL Enterprise Firewall や関連するセキュリティ設定の変更を推奨します。
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 41
サンプルテーブルに格納した文章
*************************** 4. row ***************************
FTS_DOC_ID: 4
title: MySQL Enterprise Audit 監視
description: 全てのMySQLサーバーにわたって、MySQL Enterprise Audit の状況を監視します。ベスト・プラクティス・
アドバイザーは、HIPAA、SOX 法、および PCI データセキュリティ基準などの一般的なセキュリティポリシーにおいて、企業の法
令遵守を支援します。
*************************** 5. row ***************************
FTS_DOC_ID: 5
title: MySQL パフォーマンスのリアルタイム監視およびアラート生成
description: MySQL Enterprise Monitor は MySQL クエリーとパフォーマンス関連のサーバー指標を継続的に監視
します。基準となるパフォーマンスのトレンドから大きな逸脱があった場合にアラートを受信します。また、ベストプラクティス・アドバイ
ザは、パフォーマンスを向上させるための構成やパラメータ設定の変更を提案します。
*************************** 6. row ***************************
FTS_DOC_ID: 6
title: MySQL の可用性に関するリアルタイム監視
description: 開発者および DBA は、データベース可用性の監視と測定によって、品質保証契約 (SLA) のコミットメントを満
たしているかを把握できます。
*************************** 7. row ***************************
FTS_DOC_ID: 7
title: クラウドにおける MySQL のリモート監視
description: クラウドおよび VM に対応した設計になっており、リモート・エージェントを必要とせずに、MySQL サーバーをリ
モートで監視できます。
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 42
サンプルテーブルに格納した文章
*************************** 8. row ***************************
FTS_DOC_ID: 8
title: すべての MySQL サーバーを視覚的に管理
description: Visual Dashboard は Web ベースのインタフェースで、データベースのパフォーマンス、可用性、重大イベ
ントなどを全体的に詳しく確認できます。1台のサーバー、カスタム・グループ、またはすべてのサーバーを視覚的に調べます。リア
ルタイム情報や履歴情報の豊富なグラフを使用して、サーバー統計の詳細情報にまでドリルダウンできます。
*************************** 9. row ***************************
FTS_DOC_ID: 9
title: 視覚的にクエリーを解析
description: クエリー・パフォーマンスのリアルタイム監視、実行時統計の確認、遅延の原因になっている SQL コードのフィ
ルタリングと特定が可能です。 MySQL Server 5.6 のパフォーマンス・スキーマを使用すれば、ソフトウェアや構成を追加する
ことなく、データが MySQL サーバーから直接収集されます。
*************************** 10. row ***************************
FTS_DOC_ID: 10
title: 負荷の大きいクエリーの発見と修正
description: 開発者および DBA は、相関グラフを使用して実行時パラメータ(サーバー負荷、スレッド統計、RAM 使用状況
など)を、その時点で実行中であったクエリーと比較できます。グラフ上のタイムスライスを強調表示するだけで、もっとも負荷のかか
るクエリーを発見し、より大きなパフォーマンス問題の潜在的な原因を特定します。
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 43
サンプルテーブルに格納した文章
*************************** 11. row ***************************
FTS_DOC_ID: 11
title: InnoDB の監視
description: MySQL のパフォーマンスに影響を及ぼす重要な InnoDB 指標を監視します。非効率な索引の使用、ロックの
問題、InnoDB バッファ・プール の使用に関するアラートを受信して、現在のパフォーマンスや解析されたトレンドに基づいた
InnoDB 構成を改善する方法についてのヒントを得ることができます。
*************************** 12. row ***************************
FTS_DOC_ID: 12
title: MySQL Cluster の監視
description: パフォーマンスと可用性に影響を及ぼす重要な MySQL Cluster 指標を監視します。グラフを通じて履歴情
報を確認し、データ・ノードのキャッシュ・ヒット率が低い、データ・メモリが枯渇しそうである、ノード障害が発生しそうであるといった潜
在的な問題に関するアラートを受信できます。
*************************** 13. row ***************************
FTS_DOC_ID: 13
title: バックアップの監視
description: MySQL ベストプラクティス・アドバイザは、オンライン・ホット・バックアップが想定どおり実行することを支援し、"
前回の全体バックアップは古すぎるか?"、"増分バックアップは実行中か?"、"前回のバックアップ・ジョブは成功したか?"、"
バックアップのロックの時間が長すぎるか?"などの疑問に回答します。
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 44
サンプルテーブルに格納した文章
*************************** 14. row ***************************
FTS_DOC_ID: 14
title: ディスクの監視
description: トレンドの解析と計画によって、今後必要になる容量を管理者が予測できるようにします。MySQL Enterprise
Monitor は、"ディスク領域が12か月後に一杯になる場合に通知する"といったユーザーが定義したしきい値に基づいて、運用ス
タッフに予防的なアラートを送信します。
*************************** 15. row ***************************
FTS_DOC_ID: 15
title: オペレーティング・システムの監視
description: ロードアベレージ、CPU 使用状況、RAM 使用状況、スワップ使用状況、ファイルシステム使用状況、ディスク
I/O など、オペレーティング・システムレベルのパフォーマンス指標を視覚的にリアルタイムで監視します。
*************************** 16. row ***************************
FTS_DOC_ID: 16
title: セキュリティ上のぜい弱性の特定
description: MySQL Enterprise Monitor は MySQL サーバーを保護し、開発者と DBA がセキュリティ・ホールを発
見し、それに対応するための支援をします。アドバイザによって、 MySQL のセキュリティに関するベストプラクティスを実施するた
めに設計された一連のルールが提供され、潜在的なぜい弱性がシステムに影響を及ぼす前にアラートを送信します。
*************************** 17. row ***************************
FTS_DOC_ID: 17
title: 開発中およびテスト中のチューニングを迅速化
description: 開発中およびテスト中のパフォーマンスに関する問題を発見するまでにかかる時間を大幅に短縮することで、ア
プリケーションをより迅速に本番運用できます。ユーザーよりも先にパフォーマンスの問題を特定して修正できます。
17 rows in set (0.00 sec)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 45
MySQL 5.7 InnoDB 日本語全文検索(その2)

Mais conteúdo relacionado

Mais procurados

情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜
Yuya Unno
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
 

Mais procurados (20)

広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015
広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015
広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015
 
情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
 
[DLHacks]Comet ML -機械学習のためのGitHub-
[DLHacks]Comet ML -機械学習のためのGitHub-[DLHacks]Comet ML -機械学習のためのGitHub-
[DLHacks]Comet ML -機械学習のためのGitHub-
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
シリーズML-06 ニューラルネットワークによる線形回帰
シリーズML-06 ニューラルネットワークによる線形回帰シリーズML-06 ニューラルネットワークによる線形回帰
シリーズML-06 ニューラルネットワークによる線形回帰
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
各言語の k-means 比較
各言語の k-means 比較各言語の k-means 比較
各言語の k-means 比較
 
Openconfigを用いたネットワーク機器操作
Openconfigを用いたネットワーク機器操作Openconfigを用いたネットワーク機器操作
Openconfigを用いたネットワーク機器操作
 
Jetson TK1でSemi-Global Matching
Jetson TK1でSemi-Global MatchingJetson TK1でSemi-Global Matching
Jetson TK1でSemi-Global Matching
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
 
Materials Informatics and Python
Materials Informatics and PythonMaterials Informatics and Python
Materials Informatics and Python
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案
 
AIと最適化の違いをうっかり聞いてしまう前に
AIと最適化の違いをうっかり聞いてしまう前にAIと最適化の違いをうっかり聞いてしまう前に
AIと最適化の違いをうっかり聞いてしまう前に
 
ホモトピー型理論入門
ホモトピー型理論入門ホモトピー型理論入門
ホモトピー型理論入門
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
Rest ful api設計入門
Rest ful api設計入門Rest ful api設計入門
Rest ful api設計入門
 
TensorFlowを使ってテキストをクラス分類してみた
TensorFlowを使ってテキストをクラス分類してみたTensorFlowを使ってテキストをクラス分類してみた
TensorFlowを使ってテキストをクラス分類してみた
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめ
 

Semelhante a MySQL 5.7 InnoDB 日本語全文検索(その2)

沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
Hideki Saito
 
Control distribution of virtual machines
Control distribution of virtual machinesControl distribution of virtual machines
Control distribution of virtual machines
irix_jp
 
20121119.dodai projectの紹介
20121119.dodai projectの紹介20121119.dodai projectの紹介
20121119.dodai projectの紹介
Osamu Habuka
 
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
Kensuke Nagae
 
about dodai project in OSC 2012.Cloud
about dodai project in OSC 2012.Cloudabout dodai project in OSC 2012.Cloud
about dodai project in OSC 2012.Cloud
Osamu Habuka
 

Semelhante a MySQL 5.7 InnoDB 日本語全文検索(その2) (20)

20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jp
 
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
 
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDODB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
 
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
 
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
 
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
 
MySQL clients
MySQL clientsMySQL clients
MySQL clients
 
Index shotgun on mysql5.6
Index shotgun on mysql5.6Index shotgun on mysql5.6
Index shotgun on mysql5.6
 
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
 
[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo
[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo
[D14] MySQL 5.6時代のパフォーマンスチューニング *db tech showcase 2013 Tokyo
 
Oracle Cloud MySQL Service
Oracle Cloud MySQL ServiceOracle Cloud MySQL Service
Oracle Cloud MySQL Service
 
Control distribution of virtual machines
Control distribution of virtual machinesControl distribution of virtual machines
Control distribution of virtual machines
 
20121119.dodai projectの紹介
20121119.dodai projectの紹介20121119.dodai projectの紹介
20121119.dodai projectの紹介
 
Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
 
db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストア
 
Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) -
Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) -Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) -
Bind Peek をもっと使おうぜ!(柴田 歩) - JPOUG Advent Calendar 2014(Day 5) -
 
about dodai project in OSC 2012.Cloud
about dodai project in OSC 2012.Cloudabout dodai project in OSC 2012.Cloud
about dodai project in OSC 2012.Cloud
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU Collation
 

Mais de yoyamasaki

Mais de yoyamasaki (20)

MySQL 8.0で強化されたGIS機能のご紹介と周辺ツールとの連携について
MySQL 8.0で強化されたGIS機能のご紹介と周辺ツールとの連携についてMySQL 8.0で強化されたGIS機能のご紹介と周辺ツールとの連携について
MySQL 8.0で強化されたGIS機能のご紹介と周辺ツールとの連携について
 
MySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEMySQLドキュメントストアとCTE
MySQLドキュメントストアとCTE
 
MySQL 8.0で強化されたGIS機能のご紹介+α:「FOSS4G Tokai 2018 」での発表資料
MySQL 8.0で強化されたGIS機能のご紹介+α:「FOSS4G Tokai 2018 」での発表資料 MySQL 8.0で強化されたGIS機能のご紹介+α:「FOSS4G Tokai 2018 」での発表資料
MySQL 8.0で強化されたGIS機能のご紹介+α:「FOSS4G Tokai 2018 」での発表資料
 
MySQL最新情報
MySQL最新情報MySQL最新情報
MySQL最新情報
 
MySQL 8.0で強化されたGIS機能のご紹介:「FOSS4G 2018 Hokkaido」での発表資料
MySQL 8.0で強化されたGIS機能のご紹介:「FOSS4G 2018 Hokkaido」での発表資料MySQL 8.0で強化されたGIS機能のご紹介:「FOSS4G 2018 Hokkaido」での発表資料
MySQL 8.0で強化されたGIS機能のご紹介:「FOSS4G 2018 Hokkaido」での発表資料
 
ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報
 
MySQLの公式GUIツール MySQL Workbench
MySQLの公式GUIツール MySQL WorkbenchMySQLの公式GUIツール MySQL Workbench
MySQLの公式GUIツール MySQL Workbench
 
MySQL 開発最新動向
MySQL 開発最新動向MySQL 開発最新動向
MySQL 開発最新動向
 
MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月
 
Windows環境でのMySQL
Windows環境でのMySQLWindows環境でのMySQL
Windows環境でのMySQL
 
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会
 
DrupalとMySQL
DrupalとMySQLDrupalとMySQL
DrupalとMySQL
 
Mysql+Mroongaで全文検索
Mysql+Mroongaで全文検索Mysql+Mroongaで全文検索
Mysql+Mroongaで全文検索
 
MySQL Workbench 6.1 の紹介
MySQL Workbench 6.1 の紹介MySQL Workbench 6.1 の紹介
MySQL Workbench 6.1 の紹介
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要
 
早くなったのか? MySQL5.5から5.6へのアップグレード事例
早くなったのか? MySQL5.5から5.6へのアップグレード事例早くなったのか? MySQL5.5から5.6へのアップグレード事例
早くなったのか? MySQL5.5から5.6へのアップグレード事例
 
SQL+NoSQL!? それならMySQL Clusterでしょ。
SQL+NoSQL!? それならMySQL Clusterでしょ。SQL+NoSQL!? それならMySQL Clusterでしょ。
SQL+NoSQL!? それならMySQL Clusterでしょ。
 
States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -
 
MySQL最新動向と便利ツールMySQL Workbench
MySQL最新動向と便利ツールMySQL WorkbenchMySQL最新動向と便利ツールMySQL Workbench
MySQL最新動向と便利ツールMySQL Workbench
 

Último

Último (11)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

MySQL 5.7 InnoDB 日本語全文検索(その2)

  • 1. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7 InnoDB 日本語全文検索(その2) Yoshiaki Yamasaki / 山﨑 由章 MySQL Senior Sales Consultant, Asia Pacific and Japan updated: 2016/09/30
  • 2. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメントするも のではない為、購買決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、 弊社の裁量により決定されます。 2
  • 3. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 前回の資料 • MySQL 5.7 InnoDB 日本語全文検索 http://www.slideshare.net/yoyamasaki/20160209-inno-dbftsjp 3 ※次回の資料も以下で公開しています MySQL 5.7 InnoDB 日本語全文検索(その3) http://www.slideshare.net/yoyamasaki/20160929-inno-dbftsjp
  • 4. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 少しだけ復習します 4
  • 5. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 全文検索機能の仕組み 5
  • 6. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 全文検索インデックス • トークンと文章の関係を表現した転置インデックス 6 This movie is about a boy going to war. This movie is about a girl starting an auto- shop. This movie is about flowers. a about an are as at be by com de en for from how i in is it la of on or that the this to was what when where who will with und the www Min Token Size Max Token Size Document 1 Document 2 Document 3 Stop Words Token Size Full Text / Inverted Index ID TOKEN DOCUMENT 1 movie 1,2,3 2 boy 1 3 girl 2 4 going 1 5 starting 2 6 war 1 7 auto-shop 2 8 flowers 3 Token FiltersDocuments Tokenizer Tokenizer Indexer Indexer
  • 7. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. InnoDB全文検索機能の日本語対応 7
  • 8. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 全文検索機能の日本語対応とは? • 日本語の文章を字句解析して、全文検索用のインデックスを作成できる – 英語などは、スペースを区切り文字として字句解析できるが、 日本語には区切り文字が無いため、追加の字句解析機能が必要 8
  • 9. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. MySQL 5.7でサポートされた日本語の字句解析方法 • N-gram: 一定の文字数で切りだして字句解析する手法 – デフォルトではbi-gram(2文字単位) • MeCab:オープンソースの形態素解析エンジン – 日本語の辞書をベースに字句解析する 9
  • 10. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. MySQL 5.7での強化点 • N-gramによる日本語、中国語、韓国語サポート – N文字区切りでトークンを検出 10 mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE ORDER BY doc_id, position LIMIT 10; +--------+--------------+-------------+-----------+--------+----------+ | WORD | FIRST_DOC_ID | LAST_DOC_ID | DOC_COUNT | DOC_ID | POSITION | +--------+--------------+-------------+-----------+--------+----------+ | ロー | 1 | 15 | 2 | 1 | 0 | | ール | 1 | 16 | 3 | 1 | 3 | | ルと | 1 | 1 | 1 | 1 | 6 | | とグ | 1 | 1 | 1 | 1 | 9 | | グル | 1 | 7 | 2 | 1 | 12 | | ルー | 1 | 16 | 3 | 1 | 15 | | ープ | 1 | 7 | 2 | 1 | 18 | | プベ | 1 | 1 | 1 | 1 | 21 | | 環境 | 1 | 1 | 1 | 1 | 21 | | ベー | 1 | 7 | 4 | 1 | 24 | +--------+--------------+-------------+-----------+--------+----------+ 10 rows in set (0.01 sec)c
  • 11. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. MySQL 5.7での強化点 • MeCabによる日本語サポート – MeCab(オープンソースの日本語辞書)を使ってトークンを検出 11 mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE ORDER BY doc_id, position LIMIT 10; +--------------------+--------------+-------------+-----------+--------+----------+ | WORD | FIRST_DOC_ID | LAST_DOC_ID | DOC_COUNT | DOC_ID | POSITION | +--------------------+--------------+-------------+-----------+--------+----------+ | ロール | 1 | 1 | 1 | 1 | 0 | | グループ | 1 | 7 | 2 | 1 | 12 | | 環境 | 1 | 1 | 1 | 1 | 21 | | ベース | 1 | 7 | 2 | 1 | 24 | | アクセス | 1 | 1 | 1 | 1 | 36 | | コントロール | 1 | 1 | 1 | 1 | 48 | | により | 1 | 1 | 1 | 1 | 66 | | mysql | 1 | 16 | 12 | 1 | 78 | | dba | 1 | 16 | 4 | 1 | 83 | | きめ細か | 1 | 1 | 1 | 1 | 91 | +--------------------+--------------+-------------+-----------+--------+----------+ 10 rows in set (0.00 sec)
  • 12. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. その他 • InnoDB日本語全文検索機能の使用方法は、前回の資料参照 – 事前準備 – 全文検索インデックス作成方法 – 転置インデックス確認方法 • MySQL 5.7では、日本語全文検索がお手軽に使用できる 12
  • 13. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 復習終わり 13
  • 14. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 全文検索方法 14
  • 15. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 全文検索関数を使用して検索する • 例 15 SELECT * FROM mecab.articles WHERE MATCH (description) AGAINST ('ディスク' IN BOOLEAN MODE)¥G SELECT * FROM mecab.articles WHERE MATCH (description) AGAINST ('+ディスク +トレンド' IN BOOLEAN MODE)¥G SELECT * FROM mecab.articles WHERE MATCH (description) AGAINST ('+ディスク -トレンド' IN BOOLEAN MODE)¥G
  • 16. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 16 全文検索関数 MATCH (col1,col2,...) AGAINST (expr [search_modifier]) search_modifier: { IN NATURAL LANGUAGE MODE | IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION | IN BOOLEAN MODE | WITH QUERY EXPANSION }
  • 17. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 全文検索の種類 • 自然言語検索 – IN NATURAL LANGUAGE MODE 修飾子を使用 • ブール検索 – IN BOOLEAN MODE 修飾子を使用 – 基本的にブール検索を使用する • クエリー拡張検索 – IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION 修飾子 または WITH QUERY EXPANSION 修飾子 を使用 – 自然言語検索を拡張したもの 17
  • 18. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 全文検索の種類 • 自然言語検索 – 検索されるテキストは、検索トークンの和集合に変換される – 例(MeCabの場合) • '日本の首都' ⇒ '日本' or 'の' or '首都' 18 mysql> SELECT * FROM articles WHERE MATCH(title) AGAINST('日本の首都' IN NATURAL LANGUAGE MODE); +------------+--------------------------------------+ | FTS_DOC_ID | title | +------------+--------------------------------------+ | 1 | 東京都は日本の首都です | | 2 | 京都と大阪は日本の府です | +------------+--------------------------------------+ 2 rows in set (0.00 sec) 「首都」が含まれていないものも 検索結果に出てきている
  • 19. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 全文検索の種類 • ブール検索 – 検索されるテキストは、フレーズ検索に変換される – 例(MeCabの場合) • '日本の首都' ⇒ '"日本 の 首都"' ※'日本' ⇒ 'の' ⇒ '首都' の順番に全て一致する文章 19 mysql> SELECT * FROM articles WHERE MATCH(title) AGAINST('日本の首都' IN BOOLEAN MODE); +------------+-----------------------------------+ | FTS_DOC_ID | title | +------------+-----------------------------------+ | 1 | 東京都は日本の首都です | +------------+-----------------------------------+ 1 row in set (0.01 sec)
  • 20. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. ブール検索 • 検索文字列の先頭または末尾に指定する文字が特別な意味を持つ • 例) – + : AND – - : NOT – [演算子なし] : 暗黙的にOR – () : 単語をグループ化する – > : 関連性ランキングへの単語の貢献度をプラスする – < : 関連性ランキングへの単語の貢献度をマイナスする – ~ : 関連性ランキングへの単語の貢献度をマイナスする(ノイズ除去) 20 ※参考マニュアル 13.9.2 Boolean Full-Text Searches https://dev.mysql.com/doc/refman/5.7/en/fulltext-boolean.html 12.9.2 ブール全文検索 https://dev.mysql.com/doc/refman/5.6/ja/fulltext-boolean.html
  • 21. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. ブール検索の指定例 • '+監視 +パフォーマンス' – 「監視」と「パフォーマンス」を両方含む • '+監視 -パフォーマンス' – 「監視」は含むが「パフォーマンス」は含まない • '監視 パフォーマンス' – 「監視」もしくは「パフォーマンス」のいずれかを含む • '+監視 +(パフォーマンス クラウド)' – 「監視」を含み、なおかつ「パフォーマンス」もしくは「クラウド」のいずれかを含む 21
  • 22. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 関連性ランキング • InnoDBでは TF-IDF のランキングアルゴリズムに基づいて検索ワードと ドキュメントの関連性にランクが付けられる – ドキュメントの中で頻繁に出現する単語は重要 (TF:Term Frequency) – 多くのドキュメントにおいて出現頻度の高い単語は重要では無い (IDF:Inverse Document Frequency) • 全文検索機能を使えば、検索ワードと関連性の強いドキュメントを 簡単に探すことが出来る 22
  • 23. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 関連性ランキングの確認例 23
  • 24. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. サンプルテーブル • サンプルテーブルのテーブル定義 – description列にMeCabパーサーを使用して全文検索インデックスを作成 • サンプルテーブルに格納した文章 – MySQL Enterprise Monitorのページ(※)に記載されている説明文をtitle列、 description列に格納 ※https://www-jp.mysql.com/products/enterprise/monitor.html 24 mysql> show create table articles¥G *************************** 1. row *************************** Table: articles Create Table: CREATE TABLE `articles` ( `FTS_DOC_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(100) DEFAULT NULL, `description` text, PRIMARY KEY (`FTS_DOC_ID`), FULLTEXT KEY `mecab_idx` (`description`) /*!50100 WITH PARSER `mecab` */ ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 1 row in set (0.00 sec)
  • 25. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. サンプルテーブルに格納した文章 25 ※格納した文章の一覧を、資料後半のAppendix部分に掲載しています
  • 26. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 関連性ランキングのスコアの確認例 • 選択リストに全文検索関数を含め、その列でソートする 26 SELECT FTS_DOC_ID, MATCH (description) AGAINST ('<検索ワード>' IN BOOLEAN MODE) AS score FROM articles ORDER BY score DESC;
  • 27. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 27 IDFにより、レア度が考慮される(「監視」で検索) mysql> SELECT FTS_DOC_ID, MATCH (description) AGAINST ('監視' IN BOOLEAN MODE) -> AS score FROM articles ORDER BY score DESC; +------------+---------------------+ | FTS_DOC_ID | score | +------------+---------------------+ | 3 | 0.07628998160362244 | | 4 | 0.07628998160362244 | | 5 | 0.07628998160362244 | | 6 | 0.07628998160362244 | | 7 | 0.07628998160362244 | | 9 | 0.07628998160362244 | | 11 | 0.07628998160362244 | | 12 | 0.07628998160362244 | | 15 | 0.07628998160362244 | | 1 | 0 | | 2 | 0 | | 8 | 0 | | 10 | 0 | | 13 | 0 | | 14 | 0 | | 16 | 0 | | 17 | 0 | +------------+---------------------+ 17 rows in set (0.00 sec)
  • 28. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 28 IDFにより、レア度が考慮される(「クラウド」で検索) mysql> SELECT FTS_DOC_ID, MATCH (description) AGAINST ('クラウド' IN BOOLEAN MODE) -> AS score FROM articles ORDER BY score DESC; +------------+-------------------+ | FTS_DOC_ID | score | +------------+-------------------+ | 2 | 1.727639079093933 | | 7 | 1.727639079093933 | | 1 | 0 | | 3 | 0 | | 4 | 0 | | 5 | 0 | | 6 | 0 | | 8 | 0 | | 9 | 0 | | 10 | 0 | | 11 | 0 | | 12 | 0 | | 13 | 0 | | 14 | 0 | | 15 | 0 | | 16 | 0 | | 17 | 0 | +------------+-------------------+ 17 rows in set (0.00 sec) 2つのドキュメントにしか含まれていないため、 スコアが高くなる
  • 29. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 29 TFにより、出現頻度が考慮される(「パフォーマンス」で検索) mysql> SELECT FTS_DOC_ID, MATCH (description) AGAINST ('パフォーマンス' IN BOOLEAN MODE) -> AS score FROM articles ORDER BY score DESC; +------------+---------------------+ | FTS_DOC_ID | score | +------------+---------------------+ | 5 | 0.2288699448108673 | | 11 | 0.15257996320724487 | | 17 | 0.15257996320724487 | | 1 | 0.07628998160362244 | | 8 | 0.07628998160362244 | | 9 | 0.07628998160362244 | | 10 | 0.07628998160362244 | | 12 | 0.07628998160362244 | | 15 | 0.07628998160362244 | | 2 | 0 | | 3 | 0 | | 4 | 0 | | 6 | 0 | | 7 | 0 | | 13 | 0 | | 14 | 0 | | 16 | 0 | +------------+---------------------+ 17 rows in set (0.00 sec) 出現頻度が高いドキュメントはスコアが高くなる
  • 30. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. TFにより、出現頻度が考慮される(「パフォーマンス」で検索) 30 mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=5¥G *************************** 1. row *************************** FTS_DOC_ID: 5 description: MySQL Enterprise Monitor は MySQL クエリーとパフォーマンス関連のサーバー指標を継続的に監視 します。基準となるパフォーマンスのトレンドから大きな逸脱があった場合にアラートを受信します。また、ベストプラクティス・アドバイ ザは、パフォーマンスを向上させるための構成やパラメータ設定の変更を提案します。 1 row in set (0.00 sec) mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=11¥G *************************** 1. row *************************** FTS_DOC_ID: 11 description: MySQL のパフォーマンスに影響を及ぼす重要な InnoDB 指標を監視します。非効率な索引の使用、ロックの 問題、InnoDB バッファ・プール の使用に関するアラートを受信して、現在のパフォーマンスや解析されたトレンドに基づいた InnoDB 構成を改善する方法についてのヒントを得ることができます。 1 row in set (0.00 sec) mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=1¥G *************************** 1. row *************************** FTS_DOC_ID: 1 description: MySQL Enterprise Monitorは、自動的にレプリケーション・トポロジを検出し、パフォーマンス、可用性、マ スター/スレーブの状態を表示します。MySQL 5.7にも対応済みで、レプリケーション・ダッシュボードからレプリケーションの各種指 標を確認できます。また、トポロジ・ビューにより、レプリケーション・グループやレプリケーション構成、それぞれのノードの状態など を素早く確認できます。単純なレプリケーション構成だけでなく、マルチソース・レプリケーションや、循環型、階層型といった複雑な 構成にも対応しています。 1 row in set (0.00 sec) 3回含まれている 2回含まれている 1回含まれている
  • 31. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 31 重みづけの変更例 mysql> SELECT FTS_DOC_ID, MATCH (description) AGAINST ('+パフォーマンス' IN BOOLEAN MODE) -> AS score FROM articles ORDER BY score DESC; +------------+---------------------+ | FTS_DOC_ID | score | +------------+---------------------+ | 5 | 0.2288699448108673 | | 11 | 0.15257996320724487 | | 17 | 0.15257996320724487 | | 1 | 0.07628998160362244 | | 8 | 0.07628998160362244 | | 9 | 0.07628998160362244 | | 10 | 0.07628998160362244 | | 12 | 0.07628998160362244 | | 15 | 0.07628998160362244 | | 2 | 0 | <中略> | 16 | 0 | +------------+---------------------+ 17 rows in set (0.00 sec)
  • 32. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 32 重みづけの変更例(「クエリー」を含むドキュメントのスコアを上げる) mysql> SELECT FTS_DOC_ID, MATCH (description) -> AGAINST ('+パフォーマンス >クエリー' IN BOOLEAN MODE) AS score -> FROM articles ORDER BY score DESC; +------------+---------------------+ | FTS_DOC_ID | score | +------------+---------------------+ | 10 | 2.803929090499878 | | 5 | 2.0926895141601562 | | 11 | 0.15257996320724487 | | 17 | 0.15257996320724487 | | 1 | 0.07628998160362244 | | 8 | 0.07628998160362244 | | 9 | 0.07628998160362244 | | 12 | 0.07628998160362244 | | 15 | 0.07628998160362244 | | 2 | 0 | <中略> | 16 | 0 | +------------+---------------------+ 17 rows in set (0.00 sec) 「クエリー」が含まれるドキュメントのスコアが上がる
  • 33. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 33 重みづけの変更例(「クエリー」を含むドキュメントのスコアを上げる) mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=5¥G *************************** 1. row *************************** FTS_DOC_ID: 5 description: MySQL Enterprise Monitor は MySQL クエリーとパフォーマンス関連のサーバー指標を継続的に監視 します。基準となるパフォーマンスのトレンドから大きな逸脱があった場合にアラートを受信します。また、ベストプラクティス・アドバイ ザは、パフォーマンスを向上させるための構成やパラメータ設定の変更を提案します。 1 row in set (0.00 sec) mysql> mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=10¥G *************************** 1. row *************************** FTS_DOC_ID: 10 description: 開発者および DBA は、相関グラフを使用して実行時パラメータ(サーバー負荷、スレッド統計、RAM 使用状況 など)を、その時点で実行中であったクエリーと比較できます。グラフ上のタイムスライスを強調表示するだけで、もっとも負荷のかか るクエリーを発見し、より大きなパフォーマンス問題の潜在的な原因を特定します。 1 row in set (0.00 sec)
  • 34. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 34 重みづけの変更例(「ロック」を含むドキュメントのスコアを下げる) mysql> SELECT FTS_DOC_ID, MATCH (description) -> AGAINST ('+パフォーマンス >クエリー <ロック' IN BOOLEAN MODE) AS score -> FROM articles ORDER BY score DESC; +------------+----------------------+ | FTS_DOC_ID | score | +------------+----------------------+ | 10 | 2.803929090499878 | | 5 | 2.0926895141601562 | | 17 | 0.15257996320724487 | | 1 | 0.07628998160362244 | | 8 | 0.07628998160362244 | | 9 | 0.07628998160362244 | | 12 | 0.07628998160362244 | | 15 | 0.07628998160362244 | | 11 | 0.016399502754211426 | | 2 | 0 | <中略> | 16 | 0 | +------------+----------------------+ 17 rows in set (0.00 sec) 「ロック」が含まれるドキュメントのスコアが下がる
  • 35. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 35 重みづけの変更例(「ロック」を含むドキュメントのスコアを下げる) mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=11¥G *************************** 1. row *************************** FTS_DOC_ID: 11 description: MySQL のパフォーマンスに影響を及ぼす重要な InnoDB 指標を監視します。非効率な索引の使用、ロックの 問題、InnoDB バッファ・プール の使用に関するアラートを受信して、現在のパフォーマンスや解析されたトレンドに基づいた InnoDB 構成を改善する方法についてのヒントを得ることができます。 1 row in set (0.00 sec)
  • 36. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 36 「<」と「~」の違い mysql> SELECT FTS_DOC_ID, MATCH (description) AGAINST ('監視 <パフォーマンス' IN BOOLEAN MODE) AS score FROM articles ORDER BY score DESC; +------------+---------------------+ | FTS_DOC_ID | score | +------------+---------------------+ | 3 | 0.07628998160362244 | | 4 | 0.07628998160362244 | <中略> | 14 | 0 | | 16 | 0 | | 5 | -0.6948400735855103 | | 11 | -0.7711300253868103 | | 9 | -0.8474199771881104 | | 12 | -0.8474199771881104 | | 15 | -0.8474199771881104 | | 17 | -0.8474200367927551 | | 1 | -0.9237099885940552 | | 8 | -0.9237099885940552 | | 10 | -0.9237099885940552 | +------------+---------------------+ 17 rows in set (0.00 sec)
  • 37. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 37 「<」と「~」の違い mysql> SELECT FTS_DOC_ID, MATCH (description) AGAINST ('監視 ~パフォーマンス' IN BOOLEAN MODE) AS score FROM articles ORDER BY score DESC; +------------+---------------------+ | FTS_DOC_ID | score | +------------+---------------------+ | 3 | 0.07628998160362244 | | 4 | 0.07628998160362244 | <中略> | 8 | 0 | | 10 | 0 | | 13 | 0 | | 14 | 0 | | 16 | 0 | | 17 | 0 | | 5 | -0.6948400735855103 | | 11 | -0.7711300253868103 | | 9 | -0.8474199771881104 | | 12 | -0.8474199771881104 | | 15 | -0.8474199771881104 | +------------+---------------------+ 17 rows in set (0.00 sec) 「パフォーマンス」が含まれていても、「監視」が 含まれていないドキュメントのスコアは下がらない
  • 38. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 38 「<」と「~」の違い mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=12¥G *************************** 1. row *************************** FTS_DOC_ID: 12 description: パフォーマンスと可用性に影響を及ぼす重要な MySQL Cluster 指標を監視します。グラフを通じて履歴情 報を確認し、データ・ノードのキャッシュ・ヒット率が低い、データ・メモリが枯渇しそうである、ノード障害が発生しそうであるといった潜 在的な問題に関するアラートを受信できます。 1 row in set (0.00 sec) mysql> mysql> SELECT FTS_DOC_ID, description FROM articles WHERE FTS_DOC_ID=10¥G *************************** 1. row *************************** FTS_DOC_ID: 10 description: 開発者および DBA は、相関グラフを使用して実行時パラメータ(サーバー負荷、スレッド統計、RAM 使用状況 など)を、その時点で実行中であったクエリーと比較できます。グラフ上のタイムスライスを強調表示するだけで、もっとも負荷のかか るクエリーを発見し、より大きなパフォーマンス問題の潜在的な原因を特定します。 1 row in set (0.00 sec)
  • 39. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. Appendix 39
  • 40. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 40 サンプルテーブルに格納した文章 mysql> SELECT * FROM mecab.articles¥G *************************** 1. row *************************** FTS_DOC_ID: 1 title: レプリケーション・ダッシュボード description: MySQL Enterprise Monitorは、自動的にレプリケーション・トポロジを検出し、パフォーマンス、可用性、マ スター/スレーブの状態を表示します。MySQL 5.7にも対応済みで、レプリケーション・ダッシュボードからレプリケーションの各種指 標を確認できます。また、トポロジ・ビューにより、レプリケーション・グループやレプリケーション構成、それぞれのノードの状態など を素早く確認できます。単純なレプリケーション構成だけでなく、マルチソース・レプリケーションや、循環型、階層型といった複雑な 構成にも対応しています。 *************************** 2. row *************************** FTS_DOC_ID: 2 title: アクセス制御リスト (ACLs) description: ロールとグループベースのアクセスコントロールにより、MySQL DBA にきめ細かなセキュリティポリシーを定義 するための簡単な方法を提供します。アクセス制御リストは、MySQL Enterprise Monitor をマルチテナント環境やクラウド環 境で使用している場合のアカウント管理を簡素化します。 *************************** 3. row *************************** FTS_DOC_ID: 3 title: MySQL Enterprise Firewall 監視 description: グラフとレポートから MySQL Enterprise Firewall のアクティビティを容易に監視でき、MySQL Server を特定のデータベース攻撃から守ることに役立ちます。ベスト・プラクティス・アドバイザーは、潜在的なセキュリティの脅威 を検知した時に警告を通知し、MySQL Enterprise Firewall や関連するセキュリティ設定の変更を推奨します。
  • 41. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 41 サンプルテーブルに格納した文章 *************************** 4. row *************************** FTS_DOC_ID: 4 title: MySQL Enterprise Audit 監視 description: 全てのMySQLサーバーにわたって、MySQL Enterprise Audit の状況を監視します。ベスト・プラクティス・ アドバイザーは、HIPAA、SOX 法、および PCI データセキュリティ基準などの一般的なセキュリティポリシーにおいて、企業の法 令遵守を支援します。 *************************** 5. row *************************** FTS_DOC_ID: 5 title: MySQL パフォーマンスのリアルタイム監視およびアラート生成 description: MySQL Enterprise Monitor は MySQL クエリーとパフォーマンス関連のサーバー指標を継続的に監視 します。基準となるパフォーマンスのトレンドから大きな逸脱があった場合にアラートを受信します。また、ベストプラクティス・アドバイ ザは、パフォーマンスを向上させるための構成やパラメータ設定の変更を提案します。 *************************** 6. row *************************** FTS_DOC_ID: 6 title: MySQL の可用性に関するリアルタイム監視 description: 開発者および DBA は、データベース可用性の監視と測定によって、品質保証契約 (SLA) のコミットメントを満 たしているかを把握できます。 *************************** 7. row *************************** FTS_DOC_ID: 7 title: クラウドにおける MySQL のリモート監視 description: クラウドおよび VM に対応した設計になっており、リモート・エージェントを必要とせずに、MySQL サーバーをリ モートで監視できます。
  • 42. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 42 サンプルテーブルに格納した文章 *************************** 8. row *************************** FTS_DOC_ID: 8 title: すべての MySQL サーバーを視覚的に管理 description: Visual Dashboard は Web ベースのインタフェースで、データベースのパフォーマンス、可用性、重大イベ ントなどを全体的に詳しく確認できます。1台のサーバー、カスタム・グループ、またはすべてのサーバーを視覚的に調べます。リア ルタイム情報や履歴情報の豊富なグラフを使用して、サーバー統計の詳細情報にまでドリルダウンできます。 *************************** 9. row *************************** FTS_DOC_ID: 9 title: 視覚的にクエリーを解析 description: クエリー・パフォーマンスのリアルタイム監視、実行時統計の確認、遅延の原因になっている SQL コードのフィ ルタリングと特定が可能です。 MySQL Server 5.6 のパフォーマンス・スキーマを使用すれば、ソフトウェアや構成を追加する ことなく、データが MySQL サーバーから直接収集されます。 *************************** 10. row *************************** FTS_DOC_ID: 10 title: 負荷の大きいクエリーの発見と修正 description: 開発者および DBA は、相関グラフを使用して実行時パラメータ(サーバー負荷、スレッド統計、RAM 使用状況 など)を、その時点で実行中であったクエリーと比較できます。グラフ上のタイムスライスを強調表示するだけで、もっとも負荷のかか るクエリーを発見し、より大きなパフォーマンス問題の潜在的な原因を特定します。
  • 43. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 43 サンプルテーブルに格納した文章 *************************** 11. row *************************** FTS_DOC_ID: 11 title: InnoDB の監視 description: MySQL のパフォーマンスに影響を及ぼす重要な InnoDB 指標を監視します。非効率な索引の使用、ロックの 問題、InnoDB バッファ・プール の使用に関するアラートを受信して、現在のパフォーマンスや解析されたトレンドに基づいた InnoDB 構成を改善する方法についてのヒントを得ることができます。 *************************** 12. row *************************** FTS_DOC_ID: 12 title: MySQL Cluster の監視 description: パフォーマンスと可用性に影響を及ぼす重要な MySQL Cluster 指標を監視します。グラフを通じて履歴情 報を確認し、データ・ノードのキャッシュ・ヒット率が低い、データ・メモリが枯渇しそうである、ノード障害が発生しそうであるといった潜 在的な問題に関するアラートを受信できます。 *************************** 13. row *************************** FTS_DOC_ID: 13 title: バックアップの監視 description: MySQL ベストプラクティス・アドバイザは、オンライン・ホット・バックアップが想定どおり実行することを支援し、" 前回の全体バックアップは古すぎるか?"、"増分バックアップは実行中か?"、"前回のバックアップ・ジョブは成功したか?"、" バックアップのロックの時間が長すぎるか?"などの疑問に回答します。
  • 44. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 44 サンプルテーブルに格納した文章 *************************** 14. row *************************** FTS_DOC_ID: 14 title: ディスクの監視 description: トレンドの解析と計画によって、今後必要になる容量を管理者が予測できるようにします。MySQL Enterprise Monitor は、"ディスク領域が12か月後に一杯になる場合に通知する"といったユーザーが定義したしきい値に基づいて、運用ス タッフに予防的なアラートを送信します。 *************************** 15. row *************************** FTS_DOC_ID: 15 title: オペレーティング・システムの監視 description: ロードアベレージ、CPU 使用状況、RAM 使用状況、スワップ使用状況、ファイルシステム使用状況、ディスク I/O など、オペレーティング・システムレベルのパフォーマンス指標を視覚的にリアルタイムで監視します。 *************************** 16. row *************************** FTS_DOC_ID: 16 title: セキュリティ上のぜい弱性の特定 description: MySQL Enterprise Monitor は MySQL サーバーを保護し、開発者と DBA がセキュリティ・ホールを発 見し、それに対応するための支援をします。アドバイザによって、 MySQL のセキュリティに関するベストプラクティスを実施するた めに設計された一連のルールが提供され、潜在的なぜい弱性がシステムに影響を及ぼす前にアラートを送信します。 *************************** 17. row *************************** FTS_DOC_ID: 17 title: 開発中およびテスト中のチューニングを迅速化 description: 開発中およびテスト中のパフォーマンスに関する問題を発見するまでにかかる時間を大幅に短縮することで、ア プリケーションをより迅速に本番運用できます。ユーザーよりも先にパフォーマンスの問題を特定して修正できます。 17 rows in set (0.00 sec)
  • 45. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 45