MariaDB¶
- 目次
- MariaDB
設定¶
/etc/my.cnf を直接編集せずに、/etc/my.cnf.d/の下にある設定ファイルを編集するか、ここに新たにファイルを設けて編集します。
デフォルト¶
- strage_engine
デフォルトInnoDB
チューニング¶
現在のチューニングパラメータは、MariaDBのデータベースへ問い合わせて確認します。
MariaDB [(none)]> show variables;
エンジンにはInnoDBを使う前提で、着目する項目と初期値、変更する値を次に記載します。
- innodb_buffer_pool_size
デフォルト128MB、MariaDBに割くメモリの50~80%の値(ここで割り当てた数値の5~10%位多めにメモリを使うとのこと1) - innodb_log_file_size
デフォルト5MB、書き込み負荷が高い場合に大きくする。また、innodb_buffer_pool_sizeを大きくしたら、合わせて調整する。MySQL 5.6ではデフォルトが50MBに増やされているとのこと。 - innodb_log_buffer_size
デフォルト8MB、十分そうな値 - sort_buffer_size
デフォルト2MB、十分そうな値 - read_buffer_size
デフォルト128KB、全件スキャンをするときに利用1、ちょっと大きくした方がよさそう - read_rnd_buffer_size
デフォルト256KB、ソート処理でインデックスを利用する場合に利用1、ちょっと大きくした方がよいかも
CentOS 7.1のMariaDBは、そこそこデフォルト値が増やされてるようです(CentOS 6のMySQL 5.1比)
1 MySQLを高速化する10の方法 - 漢のコンピュータ道
チューニング例1 1GB割り当て¶
innodb_buffer_pool_size = 512M innodb_log_file_size = 128M read_buffer_size = 2M
チューニング例2 512MB割り当て¶
innodb_buffer_pool_size = 256M innodb_log_file_size = 64M read_buffer_size = 1M
文字コード、照会順序¶
現在の設定の確認¶
サーバー、クライアント、接続、データベースのデフォルト¶
デフォルトの文字コード(character set)設定を確認します。
MariaDB [(none)]> SHOW VARIABLES LIKE 'char%'; +--------------------------+------------------------------+ | Variable_name | Value | +--------------------------+------------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mariadb/charsets/ | +--------------------------+------------------------------+
デフォルトの照会順序(collation)を確認します。
MariaDB [(none)]> SHOW VARIABLES LIKE 'collation%'; +----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8mb4_general_ci | | collation_database | utf8mb4_general_ci | | collation_server | utf8mb4_general_ci | +----------------------+--------------------+
これは、これから新規にデータベースやテーブルを作成したときにオプション指定しない場合に適用される値です。
既に存在するデータベース、テーブルの文字コード、照会順序を確認¶
データベースの文字コード確認(その1)
> SHOW CREATE DATABASE redmine\G *************************** 1. row *************************** Database: redmine_www_torutk_com Create Database: CREATE DATABASE `redmine_www_torutk_com` /*!40100 DEFAULT CHARACTER SET utf8mb4 */
データベースの文字コード確認(その2)
> SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'redmine'; +----------------------------+------------------------+ | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | +----------------------------+------------------------+ | utf8mb4 | utf8mb4_general_ci | +----------------------------+------------------------+
テーブルの文字コード確認(その1)
> SHOW CREATE TABLE issues\G *************************** 1. row *************************** Table: issues Create Table: CREATE TABLE `issues` ( `id` int(11) NOT NULL AUTO_INCREMENT, : `closed_on` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `issues_project_id` (`project_id`), : KEY `index_issues_on_parent_id` (`parent_id`) ) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=utf8
テーブルの文字コード確認(その2)
>SHOW TABLE STATUS; Name Engine Version ... Collation Checksum ... attachments InnoDB 10 ... utf8_general_ci NULL