Массовые вставки и INSERT INTO IGNORE с CrateDB
Я хотел бы вставить огромные объемы данных, что я должен использовать: один insert into
заявления, или я должен использовать массовые вставки? Есть что-то еще? Причина, по которой я спрашиваю, состоит в том, что диск моего узла CrateDB занят только на скорости 11 Кбит / с, в то время как загрузка диска составляет 100% при использовании одиночных вставок!
Кроме того, это что-то вроде INSERT INTO IGNORE
поддерживается? Могу ли я просто перебрасывать мои данные в CrateDB, и они будут игнорировать повторяющиеся записи?
Спасибо!
1 ответ
Так что, как вы правильно догадались, объемные вставки обеспечивают наилучшую производительность. Однако опыт может отличаться - что в основном зависит от выбранного "массового размера", то есть от того, сколько записей отправлено одновременно. Обычно пакет из 1000 записей работает очень хорошо, но рекомендуется немного поиграть, так как это может быть связано с оборудованием, на котором работает CrateDB.
Массовая вставка также автоматически пропускает повторяющиеся вставки - если у вас есть первичный ключ, определенный в этой таблице (как еще БД узнает, что такое дубликат?). Это приводит к снижению производительности (ненужный поиск / неудачная вставка), хотя...
В зависимости от того, чего вы хотите достичь, вы должны рассмотреть возможность использования вставки или обновления