1.11 Сравнение MySQL с другими СУБД | Оглавление | 1.11.1.1 Как конвертировать инструментальные средства mSQL в MySQL |
INSERT
над простыми таблицами, содержащими небольшое
количество столбцов и ключей
CREATE TABLE
и DROP TABLE
SELECT
чего-нибудь, кроме индексов (очень просто выполняется
просмотр таблицы)
SELECT
.
VARCHAR
.
SELECT
с несколькими выражениями.
SELECT
над объемными таблицами.
SELECT
,
скорость работы mSQL может упасть ниже всяких допустимых пределов. При
выполнении комплекта тестов производительности выполнение такой
операции заняло в 15000 раз больше времени, чем у MySQL.
Причиной столь плачевно низкой производительности является отсутствие
в mSQL оптимизатора связей, который обеспечивал бы оптимальность
используемого порядка соединения таблиц. Однако если в mSQL2
расположить таблицы в правильном порядке, не перегружать оператор
WHERE
и использовать индексные столбцы, связывание будет выполнено
относительно быстро! (see section 5.1.4 Набор тестов MySQL (The MySQL Benchmark Suite)).
ORDER BY
и GROUP BY
.
DISTINCT
.
TEXT
или BLOB
.
GROUP BY
и HAVING
.
В mSQL функция GROUP BY
отсутствует вовсе. В MySQL
Server же GROUP BY
имеется и работает как с HAVING
, так и со следующими
функциями: COUNT()
, AVG()
, MIN()
, MAX()
, SUM()
и STD()
.
Работа оператора
COUNT(*)
оптимизирована в расчете на быстрый возврат результатов, если
оператор SELECT
берет данные из одной таблицы, не используя никаких других
столбцов и выражения WHERE
. Функции MIN()
и MAX()
могут принимать
строковые аргументы.
INSERT
и UPDATE
с вычислениями. MySQL может выполнять
вычисления непосредственно в теле вызова INSERT
или UPDATE
. Вот
пример:
mysql> UPDATE SET x=x*10+y WHERE x<20;
SELECT
с функциями. Функций в MySQL много (даже слишком много,
чтобы их можно было перечислить здесь; see section 6.3 Функции, используемые в операторах SELECT
и WHERE
).
MEDIUMINT
, длина значений которого составляет 3
байта. При наличии 100 миллионов записей значение экономии даже одного
байта на каждой из них трудно переоценить. Выбор типов столбцов в mSQL2
значительно беднее, и поэтому снизить размеры таблиц заметно трудней.
JDBC
-драйверов:
GROUP BY
и т.п. в mSQL все еще не реализованы, этой системе еще
долго придется догонять нас. Более точное представление о положении вещей
вы сможете получить, прочитав файл `HISTORY' от mSQL за последний год, и
сравнив его с разделом новостей (News) MySQL Reference Manual (see section D История изменений и обновлений MySQL).
После этого сомнений относительно того, какая
система развивалась быстрее, остаться не должно.
msql2mysql
, исправляющая различия в написании наиболее
популярных функций C API между mSQL и MySQL. Вызовы функции
msqlConnect()
, например, она заменяет на mysql_connect()
. Обычно для
перевода клиентской программы из mSQL в MySQL оказывается
достаточно минимальных усилий.
1.11 Сравнение MySQL с другими СУБД | Оглавление | 1.11.1.1 Как конвертировать инструментальные средства mSQL в MySQL |