遅かれ早かれ、CDRのベースはかなりのサイズに成長します。 最適化するには、かなり簡単な方法がいくつかあります。
1. MySQLをアップグレードします。 新しいバージョンはそれぞれ、前のバージョンよりも高速です。 更新の問題はトピックの範囲を超えていますが、「バージョンを介して」ジャンプするときは、データベース全体をアンロードしてクリーンインストールに再度アップロードするのが最適です。
2. InnoDBを最適化します。 my.cnf構成では、次の設定をお勧めします。
innodb_buffer_pool_size = 256M ; , RAM . innodb_file_format = Barracuda ; . . innodb_buffer_pool_instances = 1 ; , . innodb_change_buffer_max_size=10 ; CDR . . innodb_flush_log_at_trx_commit=2 ; .
3.エンジンをInnoDBに変更します
ALTER TABLE cdr ENGINE=InnoDB;
4.パフォーマンススキーマを使用しない場合は無効にします(my.cnf)
performance_schema=OFF
5.クエリキャッシュ(my.cnf)を有効にします
query_cache_type=1 query_cache_size=32M
6.年の月に1つ、合計12個のパーティションを作成して、テーブルをパーティション化します。
ALTER TABLE cdr PARTITION BY HASH (month(calldate)) PARTITIONS 12;
7. SSDドライブではなく機械式ドライブがある場合は、圧縮形式に切り替えます。 このためには、Barracuda形式が必要です。
ALTER TABLE cdr ROW_FORMAT=COMPRESSED;
MySQL 5.6に関連する推奨事項