Какие mysql настройки влияют на скорость ДАННЫХ ЗАГРУЗКИ INFILE?

Глобальные переменные не приветствуются, как в RSpec, так и в целом. Вот почему:

Изменение глобальной переменной в любом месте влияет на код везде.

Таким образом, если тест когда-либо изменял переменную $now, модификация затронула бы все последующие тесты. Это может привести к очень сложным отладкам тестовых сбоев. Трудно отлаживать, потому что тест будет правильным. Но ценность глобальная не будет. Таким образом, вы не можете найти ошибку в тестах путем простого осмотра. Вам придется отлаживать его во время выполнения.

Автоматизированные тесты должны быть независимы друг от друга. Вот почему RSpec имеет лениво выполненный оператор let. let позволяет определить переменную в контексте одного примера. Вот что говорят RSpec docs :

Используйте let, чтобы определить запомнившийся вспомогательный метод. Значение будет кэшировано для нескольких вызовов в одном и том же примере, но не во всех.

blockquote>

Это означает, что если вы определите now следующим образом:

let(:now) { DateTime.parse('2020-01-01 00:00:01 -0500') }

Это значение будет точно таким, как вы говорите, в каждом отдельном тесте. Поскольку значение запоминается для каждого отдельного примера, один тест никогда не может повлиять на значение, которое другой тест получает при выполнении.

Если вы все еще не уверены, я бы порекомендовал использовать глобальную константу над глобальной переменной. По крайней мере, Ruby предупредит вас, если вы попытаетесь изменить значение.

5
задан OMG Ponies 27 December 2009 в 03:09
поделиться

2 ответа

Я не знаю о настройках, но мои деньги направлены на этот составной первичный ключ, объясняющий, почему у вас такая низкая производительность.

1
ответ дан 14 December 2019 в 08:59
поделиться

Inserting into indexes in general kills performance. You may be better off removing the index before inserting data and re-indexing after insertion.

From http://forum.percona.com/s/m/983/:

Normally MySQL is rather fast loading data in MyISAM table, but there is exception, which is when it can't rebuild indexes by sort but builds them row by row instead. It can be happening due to wrong configuration (т.е. слишком маленький myisam_max_sort_file_size или myisam_max_extra_sort_file_size) или это может быть просто отсутствие оптимизации, если у вас большой (не подходит память) ПЕРВИЧНЫЕ или УНИКАЛЬНЫЕ индексы.

Также проверьте http://www.mysqlperformanceblog.com/2007/05/24/predicting-how-long-data-load-would-take/ и http://www.linuxtopia.org/online_books/database_guides/mysql_5.1_database_reference_guide/insert-speed.html .

5
ответ дан 14 December 2019 в 08:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: