ライブラリを導入してみる

前回の振り返り

database.ymlの編集とデータベースの作成まで行いました。

 

前回のブログ↓

database.ymlの編集とデータベース作成 - whale_86’s blog

 

 今回使うライブラリの導入まで

ライブラリとは

▶︎他のプログラムと組み合わせて使用するために、複雑なプログラムを一つのセットにした物。プログラミングにおける拡張機能のこと。

ハンバーガー屋さんのセットでポテトを頼むような物ですね🍟

Rubyでのライブラリ

▶︎RubyでのライブラリはRubyGemsというシステムで管理がされている。そのため一つ一つのライブラリをGem(ジェム)と呼びます。

 

rubygems.org

 

Ruby on RailsもGemを組み合わせて出来たGemのようです!

RailsのGem関連の知識

Gemfileとは

▶︎Gemの「名前」と「バージョン」の情報を記載し、管理するRailsに付属するファイルです。Gemは他のGemの機能を使って成り立っている複雑な関係性があります。一つのGemだけをインストールしても動かない場合がありますが、bundlerというGemにより関係を管理して必要なGemやバージョンを合わせてインストールしてくれます。

 

Gemfile.lockとは

▶︎インストール済みとなったGemの情報を記録されるファイルです。一つのGemのためにどのGemをどのバージョンで合わせてインストールしたか確認することができる。

 

 

RailsにGemを入れてみる

Gemfileを以下のように編集します。

# Use mysql as the database for Active Record
gem 'mysql2', '0.5.3'

mysql2のバージョンを0.5.3に編集する。

 

今回はすでにインストール済みのバージョンを変えるため以下のコマンドをターミナルで実行します。

# Gemfileを元にGemをインストールし、Gemfile.lockを更新する
% bundle update

 

もしインストールをする場合は以下を実行します

% bundle install

 

MySQL2について調べてみた

上記でバージョンを指定したMySQL2って何者なのか調べてみました。

 

mysql2公式!

rubygems.org

 

MySQL2の成り立ち

▶︎MySQLを強化した物らしい

▶︎MySQLより評価が良かったのか、Ruby on Railsでの標準装備もMySQLからMySQL2に変わったらしい。(MySQL戦力外通告された...。)

 

MySQL2を知るには、どう強化されたのかMySQLを調べる必要がありそうです。

MySQLとは

▶︎データベース管理システムの一つ。大容量のデータにも高速で動作してくれる強み。

▶︎Webサイトの急増に伴うCMS(Webサイトを作るときのテンプレートを事前に保存、管理することができる)の発展に伴い需要が高まる。

▶︎オープンソースで基本的に無料

▶︎LinuxWindowsMacなど複数のOSで利用可能

▶︎巨大なWebサイトでも耐えられる頑丈さがある

 

おそらくここが強化された

▶︎扱いやすさ

▶︎通信の速度

 

まとめ

調べていてびっくりしてしまいました。MySQLMySQL2の戦いは熱いのかなと予想していましたが、MySQLのバージョン更新は2013年で止まってしまっているようです。これについて、「MySQLの問題が解決されないようなので、MySQL2に乗り換える」という方もいました。

どう強化されたのかまだ説明できるほど理解できませんでしたが、いつか理解できるようになるのでしょうか...。

 

調べていくうちにDBランキングなる物を見つけましたが、私が習ったDBとはどんな違いがあるのか調べてみるのも楽しそうでした

 

前回 database.ymlの編集とデータベース作成 - whale_86’s blog

次回 モデルの作成 - whale_86’s blog

 

参考にさせていただいたサイト

▶︎File: README — Documentation for mysql2 (0.5.3)

▶︎GitHub - brianmario/mysql2: A modern, simple and very fast Mysql library for Ruby - binding to libmysql

▶︎【入門】MySQLとは?人気無料データベースの使い方を分かりやすく解説します | カゴヤのサーバー研究室

▶︎gem mysql から mysql2 に移行してみる

▶︎mysql2-cs-bind released! - たごもりすメモ