Code

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

article_89_eye_catch

 

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

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

※ おすすめはMroongaです。

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

【yumの基本】CentOS環境でyumを使ってソフトウェアをインストール、アンインストールしたり、インストール済みライブラリを調べたりする方法

article_40_eye_catch

 

CentOSで様々なパッケージライブラリをインストールする際にyumを利用します。

perl, php, mysql, postfix, python, java, httpd 等々ソフトウェア開発に必要なものも大抵はyumコマンドでインストール可能です。

開発環境を整えたり、ライブラリのバージョンアップを行ったりする際にyumは利用しますので、yumを利用する際に最低限知っておきたいコマンドをご紹介いたします。

Linuxにおける日本語名フォルダを英語名に変更する方法(デスクトップ、ダウンロードフォルダ等)

article_39_eye_catch

 

Hyper-Vを使ってCentOS7をインストールし、xrdp,xorgxrdpを利用した接続をする方法を紹介した際にも触れましたが、インストール手順の記事は長く、目的も違うため、改めて該当部分のみ再掲載致します。

CentOS7を日本語でインストールすると、各種標準のフォルダ名が日本語名になります。GUI環境であるとはいえ、Linuxでは端末(ターミナル)を開いてコマンドでファイル操作を行うのが一般的です。(そのほうが便利で楽なのです。)

例えば、コマンドでファイルのコピーやフォルダの移動、検索などを行ったりするのですが、端末での操作は基本アルファベットなので、フォルダ名が日本語だとコマンド入力時に言語の切り替えが必要になり、操作が煩雑になります。

そのため、フォルダ名は英語のほうが扱いやすく、文字化け防止にもなります。

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をインストールする方法をご紹介いたします。

CentOS環境にPHPをインストールする方法

article_28_eye_catch

 

Linux環境(CentOS7)においてPHPをインストールするコマンドをご紹介いたします。

VagrantやDockerで開発環境を配布するケースも増えてきており、自身で環境を一から整える機会は少なくなりつつあるかもしれませんが、一から手順を経験しておくと何か問題が起きたときに対処できるようになります。

Linuxでは単純に何かをインストールするといっても関連するパッケージをいくつかインストールする必要があります。

パッケージとはいくつかの機能を提供するプログラムを一つにまとめたものです。リポジトリと呼ばれるパッケージの保管庫のようなものからインストールします。

今回はCentOS7におけるインストールなので、yumコマンドを利用します。

PHPはyumのbaseリポジトリにもありますが、バージョンが古いため、remiリポジトリを使います。

CentOS7にChromeをインストールする

article_27_eye_catch

 

CentOS7にChromeをインストールしようとした際にエラーとなり、インストールできなかなったので、インストールまでの流れをご紹介いたします。

Linuxにおいてはソフトウェアのインストールに必要な関連ライブラリが多く、インストール用のファイルをダウンロードして実行してもインストールできない場合があります。

そのような場合はリポジトリに必要なライブラリが存在するかどうかを調べ、存在しない場合はインターネットからダウンロードして追加、リポジトリに存在する場合はyumコマンド等でインストールすれば解決します。

Chromeに限らず起こりうるので、リポジトリにあるライブラリの検索方法は知っておくとよいと思います。

続:Hyper-VでCentOS7環境を作る

article_24_eye_catch

 

前回の記事の続きです。

CentOS7の仮想マシンをHyper-Vで構築すると、ファイル共有ができない、解像度が小さいといった問題が発生します。非常に使い勝手が悪いのでどうにかしようと思ったところ、xrdpを利用すれば解決するというのが前回までのご紹介内容でした。

今回の記事では実際に仮想マシンの構築からxrdpの導入、そして仮想マシンへの接続をxrdp経由で行えるように仮想マシン接続の設定をリモートデスクトップ接続に変更するところまでご紹介致します。

Hyper-VでCentOS7環境を作る

article_17_eye_catch

 

仮想環境を初めて触ったのは2006年くらいでしょうか。

職場の開発環境においてVMWarePlayerをLinuxにインストールしてWindowsXPの仮想環境を構築して使っていました。

当時はLinux環境で開発作業を行い、ちょっとした資料作成にVM環境を利用していました。

仮想環境が便利なのは用途にあわせて複数環境を構築したり、破棄したり、複製したり、物理的なPCが1台でも環境を複数作ることができるところでしょうか。

直近においては自分自身のPC上に開発環境を構築するにあたり、できるだけパフォーマンスの良い環境を構築するため、ホスト型の仮想環境ではなく、ハイパーバイザ型の環境を構築しようと思い、Hyper-vで開発環境を構築しました。ゲストOSはCentOS7です。

今まではVMWarePlayerやVirtualBoxなどのホスト型仮想環境を利用していたのですが、今回初めてハイパーバイザ型の仮想環境を利用しました。基本的にはHyper-vも同じように利用できるだろうと考えていたのですが、なかなか思ったようにはいきませんでした。