|
|
|
| Привет всем. У меня есть скрипт который импортирует из файла записи в базу
Их может быть больше миллиона
после 30 секунд выполнения MySQL выдаёт ошибку
Fatal error: Maximum execution time of 30 seconds exceeded in...
|
За это время записывается только около 25 000 записей.
Как мне снять это ограничение
Файл my.cnf мне не помог (там параметр set-variable = flush_time=1800)
судя по всему 1800 это 30 сек в мил. сек. | |
|
|
|
|
|
|
|
для: Den*s
(02.03.2007 в 13:24)
| | Резать файл записи на куски и частями вводить.
У меня так одна контора переделала вывод из 1С, чтобы обновлять кактлог на сайте. | |
|
|
|
|
|
|
|
для: tuder
(02.03.2007 в 13:43)
| | Сейчас попробую...
Ну всё же где храниться эта переменная, в каком файле? | |
|
|
|
|
|
|
|
для: Den*s
(02.03.2007 в 13:24)
| | Формируйте многострочный INSERT.
Не на все строки, конечно, на тысячу-две...
Время выполнения сократится в десятки раз.
MySQL такую диагностику не выдает, тут вы ошиблись. | |
|
|
|
|
|
|
|
для: Trianon
(02.03.2007 в 14:13)
| | Если можно, напишите пример многострочного INSERT,
Просто я начинающий, и мне нужно затратить некоторое время, что бы откапать в литературе такой пример... :(
А посмотреть такую переменную можно через phpMyAdmin
delayed_insert_timeout ...
delayed_insert_limit ...
и ещё как то через командную строку
shell> mysqld --help
Эта команда выдает список всех опций mysqld и конфигурируемых переменных. Вывод включает в себя величины по умолчанию и выглядит примерно следующим образом:
Possible variables for option --set-variable (-O) are:
back_log current value: 5
bdb_cache_size current value: 1048540
binlog_cache_size current value: 32768
connect_timeout current value: 5
delayed_insert_timeout current value: 300
delayed_insert_limit current value: 100
delayed_queue_size current value: 1000
flush_time current value: 0
interactive_timeout current value: 28800
join_buffer_size current value: 131072
key_buffer_size current value: 1048540
lower_case_table_names current value: 0
long_query_time current value: 10
max_allowed_packet current value: 1048576
max_binlog_cache_size current value: 4294967295
max_connections current value: 100
max_connect_errors current value: 10
max_delayed_threads current value: 20
max_heap_table_size current value: 16777216
max_join_size current value: 4294967295
max_sort_length current value: 1024
max_tmp_tables current value: 32
max_write_lock_count current value: 4294967295
myisam_sort_buffer_size current value: 8388608
net_buffer_length current value: 16384
net_retry_count current value: 10
net_read_timeout current value: 30
net_write_timeout current value: 60
read_buffer_size current value: 131072
record_rnd_buffer_size current value: 131072
slow_launch_time current value: 2
sort_buffer current value: 2097116
table_cache current value: 64
thread_concurrency current value: 10
tmp_table_size current value: 1048576
thread_stack current value: 131072
wait_timeout current value: 28800
|
| |
|
|
|
|
|
|
|
для: Den*s
(02.03.2007 в 14:55)
| |
INSERT INTO tbl (column1, column2) VALUES
(val11, val12),
(val21, val22),
(val31, val32),
.....
(valn1, valn2);
|
| |
|
|
|
|
|
|
|
для: Den*s
(02.03.2007 в 14:55)
| | Если будете многострочный INSERT использовать увеличте значение переменной max_allowed_packet - сейчас у вас она равна 1Мб, следовательно запросы, превышающие этот размер выполняться не будут. | |
|
|
|