1.11 Сравнение MySQL с другими СУБД Оглавление 1.11.1.1 Как конвертировать инструментальные средства mSQL в MySQL

1.11.1 Сравнение MySQL и mSQL

Производительность
Точные результаты сравнения скорости работы можно найти в постоянно пополняющейся библиотеке проведенных тестов по MySQL (see section 5.1.4 Набор тестов MySQL (The MySQL Benchmark Suite)). СУБД mSQL, благодаря отсутствию затрат дополнительных ресурсов на создание потоков, а также за счет компактности синтаксического анализатора, небольшого количества функций и упрощенной системы безопасности, должна выигрывать в скорости выполнения: Поскольку такие операции очень просты, при больших затратах ресурсов на начальном этапе выиграть в скорости их выполнения достаточно сложно. Поэтому лучшие результаты MySQL может показать лишь после установки соединения. С другой стороны, MySQL значительно превосходит mSQL (и большинство других реализаций SQL) при:
Возможности SQL
Эффективность использования дискового пространства
Можно ли уменьшить таблицы, и если да, то насколько? В MySQL имеются очень точные типы данных, а с их помощью можно создавать таблицы, занимающие минимум пространства. Примером чрезвычайно полезного типа данных MySQL может служить MEDIUMINT, длина значений которого составляет 3 байта. При наличии 100 миллионов записей значение экономии даже одного байта на каждой из них трудно переоценить. Выбор типов столбцов в mSQL2 значительно беднее, и поэтому снизить размеры таблиц заметно трудней.
Стабильность
Объективно оценить этот параметр трудно. Подробно вопрос стабильности MySQL рассмотрен в разделе section 1.4.3 Насколько стабильным является MySQL?. Данных и опыта, позволяющих судить о стабильности mSQL, у нас не имеется.
Стоимость
Цена лицензии является немаловажным фактором. По гибкости лицензии MySQL Server превосходит mSQL, да и стоит меньше. Вне зависимости от того, какой из продуктов вы выберете, не забудьте принять во внимание стоимость лицензии или технической поддержки по электронной почте.
Perl-интерфейсы
Perl-интерфейсы MySQL практически идентичны своим аналогам из mSQL, хотя и обладают некоторыми дополнительными возможностями.
JDBC (Java)
В настоящее время для MySQL разработано много разнообразных JDBC-драйверов: Рекомендуется использование драйвера mm. Драйвер Resin тоже, возможно, неплох (по крайней мере, результаты тестов выглядят хорошо), но достаточного количества информации по нему у нас пока нет. Мы знаем, что в mSQL имеется JDBC-драйвер, но для сравнения у нас не хватает опыта работы с ним.
Скорость разработки
Основная команда разработчиков MySQL немногочисленна, но мы привыкли писать код на C и C++ очень быстро. Так как потоки, функции, оператор GROUP BY и т.п. в mSQL все еще не реализованы, этой системе еще долго придется догонять нас. Более точное представление о положении вещей вы сможете получить, прочитав файл `HISTORY' от mSQL за последний год, и сравнив его с разделом новостей (News) MySQL Reference Manual (see section D История изменений и обновлений MySQL). После этого сомнений относительно того, какая система развивалась быстрее, остаться не должно.
Инструментальные программы
Как для mSQL, так и для MySQL сторонними разработчиками было создано множество интересных инструментальных средств. Поскольку перенос программ из mSQL в MySQL сложностей не представляет, почти все интересные приложения, разработанные первоначально для mSQL,имеются и в вариантах для MySQL. В комплект поставки MySQL входит простая программа msql2mysql, исправляющая различия в написании наиболее популярных функций C API между mSQL и MySQL. Вызовы функции msqlConnect(), например, она заменяет на mysql_connect(). Обычно для перевода клиентской программы из mSQL в MySQL оказывается достаточно минимальных усилий.

1.11 Сравнение MySQL с другими СУБД Оглавление 1.11.1.1 Как конвертировать инструментальные средства mSQL в MySQL