2

Я использую mysqldump database > output.sql чтобы сбросить все данные в базе данных. Размер выходного файла составляет около 3,3 ГБ. Я импортирую его с помощью mysql < output.sql однако он работает более 24 часов и до сих пор не завершен.

Это нормально? Есть ли способ ускорить импорт?

mysql> SHOW VARIABLES LIKE '%innodb%';
+-----------------------------------------+------------------------+
| Variable_name                           | Value                  |
+-----------------------------------------+------------------------+
| have_innodb                             | YES                    |
| ignore_builtin_innodb                   | OFF                    |
| innodb_adaptive_hash_index              | ON                     |
| innodb_additional_mem_pool_size         | 1048576                |
| innodb_autoextend_increment             | 8                      |
| innodb_autoinc_lock_mode                | 1                      |
| innodb_buffer_pool_size                 | 8388608                |
| innodb_checksums                        | ON                     |
| innodb_commit_concurrency               | 0                      |
| innodb_concurrency_tickets              | 500                    |
| innodb_data_file_path                   | ibdata1:10M:autoextend |
| innodb_data_home_dir                    |                        |
| innodb_doublewrite                      | ON                     |
| innodb_fast_shutdown                    | 1                      |
| innodb_file_io_threads                  | 4                      |
| innodb_file_per_table                   | OFF                    |
| innodb_flush_log_at_trx_commit          | 1                      |
| innodb_flush_method                     |                        |
| innodb_force_recovery                   | 0                      |
| innodb_lock_wait_timeout                | 50                     |
| innodb_locks_unsafe_for_binlog          | OFF                    |
| innodb_log_buffer_size                  | 1048576                |
| innodb_log_file_size                    | 5242880                |
| innodb_log_files_in_group               | 2                      |
| innodb_log_group_home_dir               | ./                     |
| innodb_max_dirty_pages_pct              | 90                     |
| innodb_max_purge_lag                    | 0                      |
| innodb_mirrored_log_groups              | 1                      |
| innodb_open_files                       | 300                    |
| innodb_rollback_on_timeout              | OFF                    |
| innodb_stats_on_metadata                | ON                     |
| innodb_support_xa                       | ON                     |
| innodb_sync_spin_loops                  | 20                     |
| innodb_table_locks                      | ON                     |
| innodb_thread_concurrency               | 8                      |
| innodb_thread_sleep_delay               | 10000                  |
| innodb_use_legacy_cardinality_algorithm | ON                     |
+-----------------------------------------+------------------------+
37 rows in set (0.12 sec)

mysql> SHOW VARIABLES LIKE '%key_buffer%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| key_buffer_size | 16777216 |
+-----------------+----------+
1 row in set (0.03 sec)

mysql> SHOW VARIABLES LIKE '%table%';
+----------------------------+----------+
| Variable_name              | Value    |
+----------------------------+----------+
| big_tables                 | OFF      |
| innodb_file_per_table      | OFF      |
| innodb_table_locks         | ON       |
| lower_case_table_names     | 0        |
| max_heap_table_size        | 16777216 |
| max_tmp_tables             | 32       |
| old_alter_table            | OFF      |
| sql_big_tables             | OFF      |
| table_definition_cache     | 256      |
| table_lock_wait_timeout    | 50       |
| table_open_cache           | 64       |
| table_type                 | MyISAM   |
| tmp_table_size             | 16777216 |
| updatable_views_with_limit | YES      |
+----------------------------+----------+
14 rows in set (0.00 sec)

4 ответа4

1

Я не могу себе представить, что столько данных занимает достаточно часа или двух на достаточно современной машине. Я бы использовал MySQL Administrator (находится в MySQL GUI Tools) или mtop, чтобы убедиться, что он не просто зависает.

1

Возможно, ваши настройки mysqld были настроены так, чтобы содержать слишком низкие настройки для использования памяти.

Для таблиц MyISAM убедитесь, что у вас правильно настроены key_buffer_size и table_cache.

Для таблиц InnoDB убедитесь, что вы правильно настроили innodb_buffer_pool_size. С InnoDB также может быть полезно обернуть операторы вставки вокруг транзакции.

Пожалуйста, опубликуйте здесь вывод следующих команд:

SHOW VARIABLES LIKE '%innodb%';
SHOW VARIABLES LIKE '%key_buffer%';
SHOW VARIABLES LIKE '%table%';
0

Это на самом деле оказалось проблемой дискового пространства с моей стороны. Здесь ничего нет.

0

С
показать полный список процессов;
Вы можете видеть весь процесс, запущенный, поэтому, если он все еще вставляет данные, вы должны увидеть его.

ПОКАЗАТЬ ОТКРЫТЫЕ СТОЛЫ
ПОКАЗАТЬ СТАТУС СТАТУС

Должен также дать вам некоторую информацию. Попробуйте и покажите нам результаты.

Не должен занимать более 2 часов. Согласен.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .