Я создаю базу данных, и сначала создаю прототипы и бенчмаркинг. Я использую H2, коммерческую бесплатную, встраиваемую, реляционную базу данных Java с открытым исходным кодом. В настоящее время я не индексирую ни один столбец.
После того, как база данных выросла до 5 ГБ, ее скорость пакетной записи удвоилась (скорость записи была снижена в 2 раза по сравнению с исходной скоростью). Я писал примерно 25 строк в миллисекунды со свежей, чистой базой данных, а теперь при 7 ГБ я пишу примерно 7 строк / мс. Мои строки состоят из короткого, целого числа, числа с плавающей запятой и байта [5].
Я не знаю много о внутренностях базы данных или даже о том, как Н2 был запрограммирован. Я также хотел бы отметить, что я не ругаю H2, так как это проблема с другими СУБД, которые я тестировал.
Какие факторы могут замедлить работу базы данных, как это, если нет затрат на индексацию? Это как-то связано со структурой файловой системы? Исходя из моих результатов, я предполагаю, что способ обработки файлов в Windows XP и ntfs замедляет добавление данных в конец файла по мере его увеличения.