我們有一個專門的數據庫服務器(MariaDB 5.5.31)託管我們的數據庫由我們的Java應用程序使用(通過hibernate從另一臺服務器訪問數據庫)。雖然我們的數據庫本身正在使用大約12GB的RAM,但操作系統(CentOS 6.4)的緩存大約爲25GB。MySQL操作系統緩存
你能給我任何建議,我們如何影響這種行爲?
儘管我們的100個表中的大多數都有不到1000個條目,但我們還是有一些1000萬以上的表。這些表經歷了大量的讀寫操作。
這些都是我們的DB設置:
[server]
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server = utf8
collation-server=utf8_general_ci
skip-external-locking
back_log = 50
max_connections = 100
max_connect_errors = 10
table_open_cache = 2048
max_allowed_packet = 16M
max_heap_table_size = 64M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 16M
thread_cache_size = 8
thread_concurrency = 8
query_cache_size = 128M
query_cache_limit = 2M
thread_stack = 240K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
binlog_cache_size = 1M
log-bin=mysql-bin
binlog_format=mixed
expire_logs_days = 2
#*** MyISAM Specific options
key_buffer_size = 384M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
# *** INNODB Specific options ***
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 10G
innodb_data_home_dir = /var/lib/mysql
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 8M
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
[embedded]
[mysqld-5.5]
[mariadb]
[mariadb-5.5]
請問您能分享存儲超過百萬條記錄的表格的信息嗎?那些Innodb或ISAM?什麼是時間相關的領域,以及那裏有什麼樣的數據?那裏有索引嗎?表格數據是否已完成? – 2015-03-13 14:29:51