2011-07-03 67 views
0

我剛買了一臺新的mysql機器(16gb ram,4個SAS 15k rpm 300GB的RAID10磁盤驅動器),所以速度非常快。加速InnoDB mysql數據庫導入

我一直在導入幾個數據庫,每個數據庫有幾百萬個項目,但是這需要相當長的時間,比我想象的要長。我看到每秒大約有1000個插入,我相信它應該能夠做得更多。流程運行時間越長,獲得的速度越慢。

這是我的配置,任何提示,以加快速度,但這並不損害數據的可靠性。

[mysqld] 
skip-name-resolve 
datadir=/var/lib/mysql 
#socket=/tmp/mysql.sock 
log-error=/var/log/mysqld.log 
port=48221 
user=mysql 
old_passwords=0 
max_connections = 1500 
table_cache = 1024 
max_allowed_packet = 16M 
sort_buffer_size = 2M 
thread_cache = 8 
thread_concurrency = 32 
query_cache_size = 0M 
query_cache_type = 0 
default-storage-engine = innodb 
transaction_isolation = REPEATABLE-READ 
tmp_table_size = 256M 
long_query_time = 3 
log_slow_queries = 1 
innodb_additional_mem_pool_size=48M 
innodb_flush_log_at_trx_commit=2 
innodb_log_buffer_size=32M 
innodb_buffer_pool_size=2G 
innodb_autoinc_lock_mode=2 
innodb_io_capacity=500 
innodb_read_io_threads=16 
innodb_write_io_threads=8 
innodb_buffer_pool_size = 5000M 
innodb_lock_wait_timeout = 300 
innodb_max_dirty_pages_pct = 90 
innodb_thread_concurrency =32 

[mysqldump] 
quick 
single-transaction 

[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

回答

2

您可以刪除導入期間的索引,並在完成時重建它們。您還應該嘗試分塊插入,在單個事務中搜索自動提交和所有插入之間的最佳位置。

+0

感謝您的提示。但明智的配置設置,任何建議? –

+0

這不是我的一杯茶,其他人將不得不投入。 – Szocske