Содержание материала

10. Результаты тестирования СУБД

Возможность оперативной настройки системы Electro на использование целевой СУБД позволяют провести достаточно обьективную оценку их производительности.

Табл.10.1 Запись 1500 строк


СУБД

Скорость,
Строк в секунду

Оценка размера,
Байт на строку

 

MySQL 3.23, multi REPLACE

17000

40

 

MySQL 3.23

3700

40

 

MS SQL-2000 Server

900

30

 

MS Access *.mdb

200..400

20..2000

 

Borland Interbase 4.2

250

100

 

Borland Interbase 6.5

350

80

 

Informix IDS v.9.40.TC2E1

500

n/a

 

 

 

 

 

 

 

 

 

 

Сравним результаты нашего тестирования с данными, опубликованными на сайте MySQL:


Inserting (350768) rows

Seconds

mysql

381

mysql_odbc

619

db2_odbc

3460

informix_odbc

2692

ms-sql_odbc

4012

oracle_odbc

11291

solid_odbc

1801

sybase_odbc

4802

Reading 2000000 rows by index

Seconds

mysql

367

mysql_odbc

464

db2_odbc

1206

informix_odbc

121126

ms-sql_odbc

1634

oracle_odbc

20800

solid_odbc

877

sybase_odbc

17614

We have gather some more benchmark results at http://www.mysql.com/information/benchmarks.html
Note that Oracle is not included because they asked to be removed. All Oracle benchmarks have to be passed by Oracle! We believe that makes Oracle benchmarks VERY biased because the above benchmarks are supposed to show what a standard installation can do for a single client.

Таким образом, результаты тестирования системой Electro и данные сайта практически совпадают – MySQL быстрее MS SQL в 6-8 раз. Применение оператора REPLACE в режиме вставки нескольких строк одновременно увеличивают разрыв еще в 3 раза (MySQL / MSSQL = 20)!
Использование REPLACE для множественной вставки данных. Для повышения производительности системы при занесении данных целесообразно использовать расширенный синтаксис оператора INSERT:
INSERT INTO Trend(ObjId,DT,Val)
VALUES(101,1000000,4.5), (101,1000100,5.5) (101,1000200,5.5) (101,1000300,6.5);
Однако, вероятность коллизии (когда некоторая строка данных уже существует) к сожалению снижает эффективность работы – при возникновении ошибки вставки набора строк необходимо переходить на режим построчной вставки.
В MySQL имеется оператор REPLACE с синтаксисом INSERT. При обнаружении коллизии вставки автоматически выполняются действия аналогичные оператору UPDATE.