2014-10-06 53 views
0

嘗試使用LOAD DATA INFILE將2Gb txt文件加載到MySQL中,並且它需要> 2天。你們中的任何一位專家都知道我需要做些什麼來加快數據加載速度?是否有一些設置可以改變以最大限度地提高CPU的使用率?加載MySQL表更快

我的設置如下:

auto_increment_increment=1 
auto_increment_offset=1 
autocommit=ON 
automatic_sp_privileges=ON 
back_log=80 
big_tables=OFF 
bind_address=* 
binlog_cache_size=32768 
binlog_checksum=CRC32 
binlog_direct_non_transactional_updates=OFF 
binlog_format=STATEMENT 
binlog_max_flush_queue_time=0 
binlog_order_commits=ON 
binlog_row_image=FULL 
binlog_rows_query_log_events=OFF 
binlog_stmt_cache_size=32768 
binlogging_impossible_mode=IGNORE_ERROR 
bulk_insert_buffer_size=8388608 
character_set_client=utf8 
character_set_connection=utf8 
character_set_database=utf8 
character_set_filesystem=binary 
character_set_results=utf8 
character_set_server=utf8 
character_set_system=utf8 
collation_connection=utf8_general_ci 
collation_database=utf8_general_ci 
collation_server=utf8_general_ci 
completion_type=NO_CHAIN 
concurrent_insert=AUTO 
connect_timeout=10 
core_file=OFF 
date_format=%Y-%m-%d 
datetime_format=%Y-%m-%d %H:%i:%s 
default_storage_engine=InnoDB 
default_tmp_storage_engine=InnoDB 
default_week_format=0 
delay_key_write=ON 
delayed_insert_limit=100 
delayed_insert_timeout=300 
delayed_queue_size=1000 
disconnect_on_expired_password=ON 
div_precision_increment=4 
end_markers_in_json=OFF 
enforce_gtid_consistency=OFF 
eq_range_index_dive_limit=10 
error_count=0 
event_scheduler=OFF 
expire_logs_days=0 
explicit_defaults_for_timestamp=OFF 
external_user= 
flush=OFF 
flush_time=0 
foreign_key_checks=ON 
ft_boolean_syntax=+ -><()~*:""&| 
ft_max_word_len=84 
ft_min_word_len=4 
ft_query_expansion_limit=20 
ft_stopword_file=(built-in) 
general_log=OFF 
group_concat_max_len=1024 
gtid_executed= 
gtid_mode=OFF 
gtid_next=AUTOMATIC 
gtid_owned= 
gtid_purged= 
have_compress=YES 
have_crypt=NO 
have_dynamic_loading=YES 
have_geometry=YES 
have_openssl=DISABLED 
have_profiling=YES 
have_query_cache=YES 
have_rtree_keys=YES 
have_ssl=DISABLED 
have_symlink=YES 
host_cache_size=279 
identity=0 
ignore_builtin_innodb=OFF 
ignore_db_dirs= 
init_connect= 
init_file= 
init_slave= 
innodb_adaptive_flushing=ON 
innodb_adaptive_flushing_lwm=10 
innodb_adaptive_hash_index=ON 
innodb_adaptive_max_sleep_delay=150000 
innodb_additional_mem_pool_size=2097152 
innodb_api_bk_commit_interval=5 
innodb_api_disable_rowlock=OFF 
innodb_api_enable_binlog=OFF 
innodb_api_enable_mdl=OFF 
innodb_api_trx_level=0 
innodb_autoextend_increment=64 
innodb_autoinc_lock_mode=1 
innodb_buffer_pool_dump_at_shutdown=OFF 
innodb_buffer_pool_dump_now=OFF 
innodb_buffer_pool_filename=ib_buffer_pool 
innodb_buffer_pool_instances=8 
innodb_buffer_pool_load_abort=OFF 
innodb_buffer_pool_load_at_startup=OFF 
innodb_buffer_pool_load_now=OFF 
innodb_buffer_pool_size=38797312 
innodb_change_buffer_max_size=25 
innodb_change_buffering=all 
innodb_checksum_algorithm=crc32 
innodb_checksums=ON 
innodb_cmp_per_index_enabled=OFF 
innodb_commit_concurrency=0 
innodb_compression_failure_threshold_pct=5 
innodb_compression_level=6 
innodb_compression_pad_pct_max=50 
innodb_concurrency_tickets=5000 
innodb_data_home_dir= 
innodb_disable_sort_file_cache=OFF 
innodb_doublewrite=ON 
innodb_fast_shutdown=1 
innodb_file_format=Antelope 
innodb_file_format_check=ON 
innodb_file_format_max=Antelope 
innodb_file_per_table=ON 
innodb_flush_log_at_timeout=1 
innodb_flush_log_at_trx_commit=1 
innodb_flush_method= 
innodb_flush_neighbors=1 
innodb_flushing_avg_loops=30 
innodb_force_load_corrupted=OFF 
innodb_force_recovery=0 
innodb_ft_aux_table= 
innodb_ft_cache_size=8000000 
innodb_ft_enable_diag_print=OFF 
innodb_ft_enable_stopword=ON 
innodb_ft_max_token_size=84 
innodb_ft_min_token_size=3 
innodb_ft_num_word_optimize=2000 
innodb_ft_result_cache_limit=2000000000 
innodb_ft_server_stopword_table= 
innodb_ft_sort_pll_degree=2 
innodb_ft_total_cache_size=640000000 
innodb_ft_user_stopword_table= 
innodb_io_capacity=200 
innodb_io_capacity_max=2000 
innodb_large_prefix=OFF 
innodb_lock_wait_timeout=50 
innodb_locks_unsafe_for_binlog=OFF 
innodb_log_buffer_size=1048576 
innodb_log_compressed_pages=ON 
innodb_log_file_size=50331648 
innodb_log_files_in_group=2 
innodb_log_group_home_dir=.\ 
innodb_lru_scan_depth=1024 
innodb_max_dirty_pages_pct=75 
innodb_max_dirty_pages_pct_lwm=0 
innodb_max_purge_lag=0 
innodb_max_purge_lag_delay=0 
innodb_mirrored_log_groups=1 
innodb_monitor_disable= 
innodb_monitor_enable= 
innodb_monitor_reset= 
innodb_monitor_reset_all= 
innodb_old_blocks_pct=37 
innodb_old_blocks_time=1000 
innodb_online_alter_log_max_size=134217728 
innodb_open_files=300 
innodb_optimize_fulltext_only=OFF 
innodb_page_size=16384 
innodb_print_all_deadlocks=OFF 
innodb_purge_batch_size=300 
innodb_purge_threads=1 
innodb_random_read_ahead=OFF 
innodb_read_ahead_threshold=56 
innodb_read_io_threads=4 
innodb_read_only=OFF 
innodb_replication_delay=0 
innodb_rollback_on_timeout=OFF 
innodb_rollback_segments=128 
innodb_sort_buffer_size=1048576 
innodb_spin_wait_delay=6 
innodb_stats_auto_recalc=ON 
innodb_stats_method=nulls_equal 
innodb_stats_on_metadata=OFF 
innodb_stats_persistent=ON 
innodb_stats_persistent_sample_pages=20 
innodb_stats_sample_pages=8 
innodb_stats_transient_sample_pages=8 
innodb_status_output=OFF 
innodb_status_output_locks=OFF 
innodb_strict_mode=OFF 
innodb_support_xa=ON 
innodb_sync_array_size=1 
innodb_sync_spin_loops=30 
innodb_table_locks=ON 
innodb_thread_concurrency=9 
innodb_thread_sleep_delay=0 
innodb_undo_directory=. 
innodb_undo_logs=128 
innodb_undo_tablespaces=0 
innodb_use_native_aio=ON 
innodb_use_sys_malloc=ON 
innodb_version=5.6.21 
innodb_write_io_threads=4 
insert_id=0 
interactive_timeout=28800 
join_buffer_size=262144 
keep_files_on_create=OFF 
key_buffer_size=8388608 
key_cache_age_threshold=300 
key_cache_block_size=1024 
key_cache_division_limit=100 
large_files_support=ON 
large_page_size=0 
large_pages=OFF 
last_insert_id=0 
lc_messages=en_US 
lc_time_names=en_US 
local_infile=ON 
lock_wait_timeout=31536000 
log_bin=OFF 
log_bin_basename= 
log_bin_index= 
log_bin_trust_function_creators=OFF 
log_bin_use_v1_row_events=OFF 
log_output=FILE 
log_queries_not_using_indexes=OFF 
log_slave_updates=OFF 
log_slow_admin_statements=OFF 
log_slow_slave_statements=OFF 
log_throttle_queries_not_using_indexes=0 
log_warnings=1 
long_query_time=10 
low_priority_updates=OFF 
lower_case_file_system=ON 
lower_case_table_names=1 
master_info_repository=FILE 
master_verify_checksum=OFF 
max_allowed_packet=4194304 
max_binlog_cache_size=18446744073709500000 
max_binlog_size=1073741824 
max_binlog_stmt_cache_size=18446744073709500000 
max_connect_errors=100 
max_connections=151 
max_delayed_threads=20 
max_error_count=64 
max_heap_table_size=16777216 
max_insert_delayed_threads=20 
max_join_size=18446744073709500000 
max_length_for_sort_data=1024 
max_prepared_stmt_count=16382 
max_relay_log_size=0 
max_seeks_for_key=4294967295 
max_sort_length=1024 
max_sp_recursion_depth=0 
max_tmp_tables=32 
max_user_connections=0 
max_write_lock_count=4294967295 
metadata_locks_cache_size=1024 
metadata_locks_hash_instances=8 
min_examined_row_limit=0 
multi_range_count=256 
myisam_data_pointer_size=6 
myisam_max_sort_file_size=107374182400 
myisam_mmap_size=4294967295 
myisam_recover_options=OFF 
myisam_repair_threads=1 
myisam_sort_buffer_size=16777216 
myisam_stats_method=nulls_unequal 
myisam_use_mmap=OFF 
named_pipe=ON 
net_buffer_length=16384 
net_read_timeout=30 
net_retry_count=10 
net_write_timeout=60 
new=OFF 
old=OFF 
old_alter_table=OFF 
old_passwords=0 
open_files_limit=6209 
optimizer_prune_level=1 
optimizer_search_depth=62 
optimizer_trace_limit=1 
optimizer_trace_max_mem_size=16384 
optimizer_trace_offset=-1 
performance_schema=ON 
performance_schema_accounts_size=100 
performance_schema_digests_size=10000 
performance_schema_events_stages_history_long_size=10000 
performance_schema_events_stages_history_size=10 
performance_schema_events_statements_history_long_size=10000 
performance_schema_events_statements_history_size=10 
performance_schema_events_waits_history_long_size=10000 
performance_schema_events_waits_history_size=10 
performance_schema_hosts_size=100 
performance_schema_max_cond_classes=80 
performance_schema_max_cond_instances=3504 
performance_schema_max_file_classes=50 
performance_schema_max_file_handles=32768 
performance_schema_max_file_instances=6770 
performance_schema_max_mutex_classes=200 
performance_schema_max_mutex_instances=15906 
performance_schema_max_rwlock_classes=40 
performance_schema_max_rwlock_instances=9102 
performance_schema_max_socket_classes=10 
performance_schema_max_socket_instances=322 
performance_schema_max_stage_classes=150 
performance_schema_max_statement_classes=168 
performance_schema_max_table_handles=4000 
performance_schema_max_table_instances=12500 
performance_schema_max_thread_classes=50 
performance_schema_max_thread_instances=402 
performance_schema_session_connect_attrs_size=512 
performance_schema_setup_actors_size=100 
performance_schema_setup_objects_size=100 
performance_schema_users_size=100 
port=3306 
preload_buffer_size=32768 
profiling=OFF 
profiling_history_size=15 
protocol_version=10 
proxy_user= 
pseudo_slave_mode=OFF 
pseudo_thread_id=14 
query_alloc_block_size=8192 
query_cache_limit=1048576 
query_cache_min_res_unit=4096 
query_cache_size=0 
query_cache_type=OFF 
query_cache_wlock_invalidate=OFF 
query_prealloc_size=8192 
rand_seed1=0 
rand_seed2=0 
range_alloc_block_size=4096 
read_buffer_size=32768 
read_only=OFF 
read_rnd_buffer_size=262144 
relay_log= 
relay_log_basename= 
relay_log_index= 
relay_log_info_file=relay-log.info 
relay_log_info_repository=FILE 
relay_log_purge=ON 
relay_log_recovery=OFF 
relay_log_space_limit=0 
report_host= 
report_password= 
report_port=3306 
report_user= 
rpl_stop_slave_timeout=31536000 
secure_auth=ON 
secure_file_priv= 
server_id=1 
server_id_bits=32 
shared_memory=ON 
shared_memory_base_name=MYSQL 
simplified_binlog_gtid_recovery=OFF 
skip_external_locking=ON 
skip_name_resolve=OFF 
skip_networking=OFF 
skip_show_database=OFF 
slave_allow_batching=OFF 
slave_checkpoint_group=512 
slave_checkpoint_period=300 
slave_compressed_protocol=OFF 
slave_exec_mode=STRICT 
slave_load_tmpdir=C:\Windows\SERVIC~2\NETWOR~1\AppData\Local\Temp 
slave_max_allowed_packet=1073741824 
slave_net_timeout=3600 
slave_parallel_workers=0 
slave_pending_jobs_size_max=16777216 
slave_rows_search_algorithms=TABLE_SCAN,INDEX_SCAN 
slave_skip_errors=OFF 
slave_sql_verify_checksum=ON 
slave_transaction_retries=10 
slave_type_conversions= 
slow_launch_time=2 
slow_query_log=ON 
socket=MYSQL 
sort_buffer_size=262144 
sql_auto_is_null=OFF 
sql_big_selects=ON 
sql_buffer_result=OFF 
sql_log_bin=ON 
sql_log_off=OFF 
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 
sql_notes=ON 
sql_quote_show_create=ON 
sql_safe_updates=OFF 
sql_select_limit=18446744073709500000 
sql_slave_skip_counter=0 
sql_warnings=OFF 
ssl_ca= 
ssl_capath= 
ssl_cert= 
ssl_cipher= 
ssl_crl= 
ssl_crlpath= 
ssl_key= 
storage_engine=InnoDB 
stored_program_cache=256 
sync_binlog=0 
sync_frm=ON 
sync_master_info=10000 
sync_relay_log=10000 
sync_relay_log_info=10000 
system_time_zone=Pacific Daylight Time 
table_definition_cache=1400 
table_open_cache=2000 
table_open_cache_instances=1 
thread_cache_size=10 
thread_concurrency=10 
thread_handling=one-thread-per-connection 
thread_stack=196608 
timestamp=1412831034.49334 
tmp_table_size=13631488 
transaction_alloc_block_size=8192 
transaction_allow_batching=OFF 
transaction_prealloc_size=4096 
tx_isolation=REPEATABLE-READ 
tx_read_only=OFF 
unique_checks=ON 
updatable_views_with_limit=YES 
wait_timeout=28800 
warning_count=0 
+0

您是否已經調整了您的服務器或者是否正在運行MySQL提供的可怕默認值?你的文件是什麼格式?你在其他硬件上做過測試嗎?你在使用固態硬盤嗎?你爲什麼不發佈**更多的細節**? – tadman 2014-10-06 07:13:54

+0

只需添加更多信息。任何幫助將是偉大的 – Serengeti33 2014-10-09 05:43:34

+0

這是什麼操作系統? – itsols 2014-10-09 06:08:19

回答

1

有沒有辦法,一個2G的文件應該需要數天來加載。它應該只需要幾分鐘,最壞的情況。

您正在使用MySQL 5.6,但您仍然使用MySQL 5.5的默認設置。他們真的不足。

我建議至少改變這些對於初學者設置:

  • innodb_buffer_pool_size = 4G(假設你有足夠的RAM,這不會造成交換)
  • innodb_log_file_size = 2G
  • innodb_log_buffer_size = 64M
  • innodb_flush_method = O_DIRECT

您需要重新啓動mysqld的把牛逼生效。

0

您的延遲是因爲對於每個插入,系統必須檢查完整性,約束等。因此,例如,每次插入發生時,都會重建索引...現在,這只是一個示例。

如果你能保證你的數據滿足完整性約束,這就是我要做的。首先確保數據庫此時未被其他用戶使用,請執行以下操作:

  1. 刪除所有主鍵約束和索引。 (我不知道是否有方法將它們關閉)
  2. 將您的新數據帶入
  3. 重新創建您的索引和鍵。

這可能非常棘手,所以使用腳本來做它應該是最好的選擇。

+1

索引不會爲插入的每一行重建。向索引添加一個條目並不是那麼昂貴。 FWIW,沒有辦法關閉InnoDB表的主鍵。如果您嘗試,表格會創建自己的隱藏主鍵。 – 2014-10-09 06:23:48