Friday, July 27, 2007

ZeosDBO vs Native MySQL library

Год-два назад парни из нашей команды разработчиков озадачились поиском библиотеки для работы с MySQL из CBuilder 6.0. Они протестировали несколько freware и shareware библиотек и в результате остановились на библиотеке ZeosDBO.

Компоненты ZeosDBO - это BDE-подобные компоненты аля TTable, TQuery и т.п.

Библиотека была успешно использована при создании обработчика данных для установки переработки натриевого теплоносителя реактора БН-350 (г. Актау, Казахстан). Объемы данных небольшие, скорость выборки достаточно высокая.

Спустя некоторое время на осонове того же класса работы с MySQL, использующего ZeosDBO, была начата разработка системы группового анализа данных регистрации физических параметров экспериментов. Объем данных превышает объем данных предыдущего проекта в десятки и сотни раз. Кроме всего прочего необходимо было организовать построение графиков и фильтрацию сигналов от помех.

Время, затрачиваемое на выборку данных составляло от нескольких секунд, до минуты и более на один тег, в зависимости от объема данных.

Так как визуальные компоненты ZeosDBO не использовались, я решил заменить библиотеку ZeosDBO на "родную" си-шную библиотеку MySQL от разработчиков СУБД.

Прирост производительности превзошел все ожидания. Для особенно больших объемов данных время выборки и обработки данных сократилось в сотни раз.

Учитывая, что я никогда не пользовался возможностями компонент TTable и лишь частично использовал возможности TQuery, отныне и впредь мой выбор за "родной" библиотекой MySQL.

2 comments:

Ilya said...

Слушай, а почему MySQL? Ведь есть PostgreSQL да и Oracle XE, DB2 Express-C бесплатные есть давно.

Дмитрий Ястребков said...

Он у нас уже лет 5 успешно работает и крутятся под этой СУБД сразу несколько задач. Функционала вполне достаточно. Скорость выполнения запросов очень высокая, если сравнивать, например, с MS SQL. С Oracle и Postgre не работал, не знаю. Для задач хранения очень больших объемов данных и быстрой выборки MySQL вполне подходит.