mySQL5.7における、検索の検証を行う。 データ容量、速度の観点から判断する。 3つの実装方法で検討する。
- Like検索
- Like検索 + パーティショニング
- 全文検索
それぞれについて、検索用のテーブルを作成し 数回ワード検索を行い、判断する。
検索対象はVARCHAR型を想定していたが、wikipediaのデータはVARBINARY型だった。 VARBINARYとVARCHARのダミーデータを用意して比較してみたところ、VARBINARYの方が速度的に少し速い以外の差が見られなかったため、 本検証はVARBINARYのカラムで実施する。
「Like」「Like + Partition」「Full Text Search」実装を行い、検索した際の
- 総データ容量
docker ps -s
のSIZE
- 検索速度
- SQL実行 - 返却まで
を計測する。 SIZEは、virtualのものと表示されているサイズの合計値で判断する docker/docs#1520 (comment)
- https://dumps.wikimedia.org/jawiki/20211101/
- https://dumps.wikimedia.org/enwiki/20211101/
- https://dumps.wikimedia.org/viwiki/20211101/
- https://dumps.wikimedia.org/thwiki/20211101/
から、タイトル情報のダンプデータを取得する。 英語タイトルの量が多すぎるため、sedである程度量をカットしている。
wikiデータのテーブル説明は https://www.mediawiki.org/wiki/Manual:Page_table/ja に記載あり。