#MySQL

【備忘録】Synology DS918+ のmariaDB10(mysql) のmy.cnfによるチューニング

自分が再度環境構築をしなければならない場合のメモ

メモリ増設

PC3-14900 1866MHz SODIM 203pin 8GB x 2
iRamのimac用メモリ8GBを2枚購入して搭載。
→動作OK

my.cnfの場所

/volume1/\@appstore/MariaDB10/usr/local/mariadb10/etc/mysql/my.cnf

my.cnfの変更例

[client]
port = 3307
socket = /run/mysqld/mysqld10.sock

[mysqld]
bind-address = 0.0.0.0
port = 3307
socket = /run/mysqld/mysqld10.sock
pid-file = /run/mysqld/mysqld10.pid
skip-external-locking
#key_buffer_size = 16K
key_buffer_size = 16M
#max_allowed_packet = 1M
max_allowed_packet = 16M
table_open_cache = 4
#read_buffer_size = 256K
read_buffer_size =4M 
#read_rnd_buffer_size = 256K
read_rnd_buffer_size = 4M 
#net_buffer_length = 2K
net_buffer_length = 48M 
thread_stack = 240K
innodb_data_home_dir = /var/packages/MariaDB10/target/mysql
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/packages/MariaDB10/target/mysql
#innodb_buffer_pool_size = 16M
innodb_buffer_pool_size = 2G 
#innodb_additional_mem_pool_size = 2M
innodb_additional_mem_pool_size = 1G
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
innodb_file_per_table = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
#key_buffer_size = 24M
key_buffer_size = 24M
#sort_buffer_size = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout

# Please add your custom configuration to here:
!include /var/packages/MariaDB10/etc/my.cnf

SSHを有効にする。

[コントロールパネル][端末とSNMP][ターミナル][SSHサービスを有効化する。]

(SSH)シェルからmysqlへのアクセス

/usr/local/mariadb10/bin/mysql -u root -P 3307 -h localhost

共有ファイルの場所

/volumeXX 以下

経験備忘録

 巨大データ(1G超)は結合想定でテーブル分けが良い。
 巨大テーブルへのクエリでメモリ小さいと[select * from table;]だけでもmysqlクライアントがkillされる。
 RAID5 はシングルディスクと比較しても30~100倍遅い。
 SHR RAID10は高速。