ТОП-10 популярных


НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...


Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...

Internet2, или cтарые песни о новом
Когда-то на заре Интернета, тогдаеще военно-научной сетиAPRAnet, были заложены основныепринципы функционирования«Сети сетей». В их числе — использованиепротокола, называемого сейчасIPv4. В...

Все о MySQL. Расширяемость


28-12-2009

В большинстве продуктов СУБД возможности базы данных можно расширить с помощью хранимых процедур. Возможности программирования расширяются с помощью дополнений к SQL в виде операторов, позволяющих управлять ходом выполнения и условной логикой, такой как T-SQL у СУБД SQL Server и PL/SQL у СУБД Oracle.
На текущий момент в СУБД MySQL не предусмотрена поддержка обработки хранимых процедур, но одним из самых больших преимуществ этой реляционной СУБД является ее расширяемость. Поддерживая традиции движения "open source", СУБД MySQL как часть своего дистрибутива имеет исходные тексты всех программ, что позволяет разработчикам добавлять свои функции и возможности, которые компилируются в процессор MySQL в качестве части исходного продукта. СУБД MySQL также позволяет производить загрузку отдельных библиотек C и C++ в том же пространстве памяти, что и процессор при запуске MySQL.
Любой из этих методов позволит взаимодействовать с вашими функциями так же, как и с любой уже встроенной функцией, предусмотренной в MySQL, например функцией SUM() или AVG(), потому что эти функции работают в том же пространстве памяти, что и MySQL. А поскольку они выполняются на том же самом сервере, где располагается MySQL, их использование минимизирует сетевой трафик между вызывающей программой и сервером, что в свою очередь способствует росту производительности.
Добавлять функции в MySQL можно и воспользовавшись интерфейсом пользовательских функций. Функции этого вида первоначально были разработаны как специальные библиотеки C/C++, а потом были добавлены и удалены динамически с помощью операторов CREATE FUNCTION и DROP FUNCTION. Пользовательские функции добавляют нагрузку, которая заключается в установке всех ваших библиотек при каждой установке MySQL; однако при этом запуск самого MySQL будет происходить быстрее, т.к. эти функции можно разместить в двоичном дистрибутиве, а не производить повторную компиляцию для того, чтобы подключить новые функции. Кроме того, есть отличный шанс, что ваши библиотеки могут работать в неизменном виде даже с новыми версиями MySQL.
Можно добавить функции в виде естественных (встроенных) функций MySQL. Естественные функции скомпилированы вместе с самим сервером MySQL и стали постоянной частью самой инсталляции MySQL. Это значительно упрощает инсталляцию по сравнению с использованием библиотек, т.к. определив один раз дистрибутив можно быть полностью уверенным в том, что все последующие инсталляции будут содержать все добавленные вами функции. С другой стороны, необходимо повторно компилировать и создавать свой дистрибутив для каждой новой версии MySQL.
Применение творческого подхода
Сымитировать инкапсуляцию и централизацию хранимых процедур в MySQL можно путем сохранения кода в таблице с последующей выборкой этого кода для выполнения вызывающей программой. Например, программа, написанная на Perl, может работать с таблицей, в которой содержится код Perl. Клиентская программа может осуществить поиск нужного программного блока и обработать этот код во время выполнения.
Этот метод позволяет размещать программы на сервере, и при этом не требуется, чтобы клиентские программы ничего "не знали" об изменениях кода. Из-за многочисленных передач на сервер и приемов с сервера и ввиду того, что этот подход работает только с интерпретируемыми языками, это не является полноценной заменой всех возможностей, которые представляют хранимые процедуры в других реляционных СУБД...

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Целостность данных. Продолжение. Все о MySQL. Симметричная обработка с помощью MySQL