Задавайте вопросы, мы ответим
Вы не зашли.
Решается задача мотиторинга транспорта на дороге. Данные от детекторов поступают на ПК и вставляются в БД. Вот вставляемая запись:
CREATE TABLE TM.VEHICLE
(ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
TIME_STAMP CHAR(23) NULL,
DEVICE INT UNSIGNED NULL,
LANE TINYINT UNSIGNED NULL,
CLASS TINYINT UNSIGNED NULL,
SPEED TINYINT UNSIGNED NULL,
LENGTH TINYINT UNSIGNED NULL,
DISTANCE TINYINT UNSIGNED NULL,
X_POS SMALLINT UNSIGNED NULL,
Y_POS SMALLINT UNSIGNED NULL,
PRIMARY KEY (ID));
Вставка тестировалась на 3-х СУБД. И вот какие результаты я получил при вставке 10000 записей:
MSSQLServer 2005 ~ 8712 ms.
Firebird 2.0 ~ 29609 ms.
MySQL Server 5.0 ~ 286902 ms. !!!!!
Время вставки для MySQL в 30 раз больше, чем в MSSQL и в 10 раз больше, чем в FB! Понимаю, что получил сомнительный результат. При работе со всеми СУБД использовал ODBC. Вставка производилась с одного компьютера (клиент) на другой (сервер). При установке всех СУБД никаких особых настроек не делал, ставилось всё по умолчанию.
Помогите понять в чём проблема! Не верится, что MySQL такой тормозной. Как оптимизировать?
Спасибо.
Неактивен
PS: Выборка 10000 записей для всех СУБД примерно одинаковая 200 - 300 ms. Проблема при вставке. Есть ли рекомендации по оптимизации настроек ODBC коннектора?
Неактивен
Проблема разрешилась переконфигурацией сервера. После установки флага "Non-transactional Database Only" (по умолчанию было "Multifunctional Database") Скорость вставки увеличилась до 4062 ms для 10000 записей, то есть в 70 раз!!!
Неактивен
Видимо, у Вас было мало памяти под InnoDB выделено Но я рад, что Вы
решили проблему переходом на MyISAM
Неактивен