DB

MySQL5.7における全文検索の実装方法について

article_89_eye_catch

 

以前、MySQLのデータベースエンジンであるInnoDBの全文検索を導入するために、MySQL5.6から5.7へバージョンアップしたのですが、InnoDBにおける全文検索は思ったほどのパフォーマンスは得られず、全文検索に特化したMroongaエンジンを利用することにしました。

本記事ではInnoDBおよびMroongaの両方について紹介致します。

※ おすすめはMroongaです。

全文検索とは簡単にイメージを掴んで頂くと、Google検索のようなキーワードによるデータ検索機能です。

MySQL5.6から5.7へのアップグレード手順 (全文検索でngramを利用するために)

article_37_eye_catch

 

MySQLで全文検索機能を実装しようとした場合、MySQL5.6以上から日本語の全文検索に対応しています。

しかしながら、MySQL5.6ではngram等のパーサに非対応で、FULLTEXTインデックスの利便性が悪いです。

検索精度を向上させるためには、FULLTEXTインデックスを付与したカラムに自前で工夫したキーワードを登録する必要があります。

キーワード生成の自前作成をアプリ側でやろうとするとパフォーマンスも悪く、煩雑なデータ登録ロジックになるため、ngramのパーサに対応しているMySQL5.7へバージョンアップすることにしました。

今後さらにバージョンアップを行う場合、同じ手順で実行可能とは限りませんが、ほとんど同じ手順でできるのではないかと思料しております。

MariaDB(MySQL)におけるデータベースの作成とユーザ作成および権限付与について

article_32_eye_catch

 

MariaDBとMySQLは姉妹関係にあるRDBMSになります。どちらもアプリケーションで登録するデータを保存するために必要なソフトウェアです。

違いはMySQLをもとにパフォーマンス改善し、後発として誕生したものがMariaDBです。

MariaDBもしくはMySQLをインストールした後はデータベース(DB)の作成と、作成したDBを操作するためのユーザ作成が必要になります。

自身でWebアプリケーションを構築する際やWordPress、DrupalといったCMSをインストール際にDBの構築作業は必要になります。

また、MariaDB(MySQL)はレンタルサーバでよく使われています。

レンタルサーバでは大抵管理メニューから簡単にDBの作成ができるようになっておりますが、管理メニュー等の便利機能に頼らずともデータベースの作成やユーザの作成ができるようにしておいたほうが吉です。

MariaDBのインストールまたはMySQLのインストール

article_29_eye_catch

 

プログラミングを始め、システム開発を行うときに必ずと言っていいほどセットで登場するのがデータベース(DB)です。

データベースとはデータを保存するためのソフトウェアであり、リレーショナルデータベース(RDB)が主流です。

データベースの作成やそれらにアクセス可能なユーザなどを管理するソフトウェアがMariaDBやMySQL、PostgreSQL、Oracle、SQLServerといったものです。

RDBにおいて覚える必要があるのはSQLというデータベースを操作するための言語です。

データを格納する箱であるテーブルを作成したり、データの登録、更新、削除、検索といったことをSQLを使って行います。

今回はSQLの基礎知識ではなく、CentOS7環境に最新のMariaDBをインストールする方法、MariaDBではなくMySQLをインストールする方法をご紹介いたします。