ТОП-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

СУБД MySQL оснащена специальными функциями, предназначенными для получения информации о самой системе. Они перечислены в табл. 7.10.
Системные информационные функции
Функции DATABASE(), USER() и VERSION() возвращают информацию о выбранной в данный момент времени базе данных, текущем пользователе и версии работающего сервера MySQL соответственно.
Системные информационные функции
 Функция CONNECTION_ID() определяет идентификатор соединения клиента с сервером, а функция LAST_INSERT_ID() возвращает значение счетчика, которое автоматически гене­рируется MySQL при добавлении в поле, объявленном с атрибутом AUTOINCREMENT. 
Это очень удобно при обработке связей между несколькими таблицами при необходимости использования идентификатора записи в качестве ключа другой таблицы. Это видно из следующего примера.
Системные информационные функции
Функция BENCHMARK() поможет разработчику произвести оценку рабочих характеристик MySQL. Для этого сервер выполняет определенное выражение, заданное число раз. Эта функция всегда возвращает 0 и отчет о времени, которое необходимо для данного подключения клиента к серверу. На основании этих данных можно сделать определенный вывод о рабочих характеристиках сервера.
Системные информационные функции
В этом примере системе MySQL потребовалось 2,08 секунд для выполнения выражения LOG(RAND() * PI()) 999999 раз. Выполнение этой функции через равномерные или неравномерные интервалы времени позволяет разработчику получить исходные данные для оценки производительности сервера.
СУБД MySQL также имеет три функции, которые предназначены специально для блокировки работы клиентов на прикладном уровне. Функция GET_LOCK() принимает два аргумента - имя блокировки и длительность блокировки в секундах - и пытается заблокировать работу клиента на заданное время. При успешном завершении функция возвращает 1, в противном случае - 0 или NULL.
Системные информационные функции
Функция RELEASE_LOCK() предназначена для выполнения обратной функции, отмены блокировки с указанным временем, при успешном завершении она возвращает 1, при сбое - 0 и в случае ошибки - NULL.
Системные информационные функции
Функция IS_FREE_LOCK() проверяет наличие блокировки с указанным именем и возвращает 1 или 0 - в зависимости от того, является блокировка активизированной или свободной.
Системные информационные функции
В определенный момент времени может быть активизировано не более одной блокировки. Последовательность вызовов функции GET_LOCK() снимает активные блокировки.
Системные информационные функции
Системные информационные функции
Функции GET_LOCK() , RELEASE_LOCK() и IS_FREE_LOCK() упрощают синхронизацию работы с базами данных нескольких клиентов MySQL, согласуя семантику блокировки.
Функция FOUND_ROWS() возвращает общее количество строк, выбранных по последнему запросу SELECT. Она особенно полезна при применении с конструкциями SQL_CALC_FOUND_ROWS и LIMIT, т.к. позволяет контролировать количество выбранных строк в результирующем наборе (с LIMIT), одновременно отображая общее количество выбранных записей (конструкция SQL_CALC_FOUND_ROWS функция FOUND_ROWS() ). Рассмотрим следующий простой пример, подтверждающий вышесказанное.
Системные информационные функции
 В этом случае первый запрос из всего результирующего набора выбирает только ог­раниченный поднабор, состоящий из четырех записей. Однако в этом запросе использовалась конструкция SQL_CALC_FOUND_ROWS. Поэтому MySQL сохраняет общее количество выбранных в результирующем наборе строк, и позволяет вывести это число с помощью функции FOUND_ROWS(). Таким образом, второй запрос позволяет получить полную статистику без дополнительного просмотра таблиц.
И, наконец, специализированная функция MASTER_POS_WAIT() предназначена прежде всего для использования на подчиненном сервере MySQL при обеспечении связи "главный-подчиненный". Функция MASTER_POS_WAIT() принимает три аргумента: имя регистрационного журнала, положение в регистрационном журнале и значение тай-маута. Эта функция блокирует главный сервер во избежание доступа к нему в период восстановления подчиненного сервера до указанного журналом состояния. Использование этой функции обычно рассматривается в контексте репликации, о которой можно больше узнать в главе 17, "Механизм репликации MySQL".

Резюме
Эта глава посвящена различным встроенным функциям реляционной СУБД MySQL. Они разбиты на несколько категорий, и особенности каждой из них показаны в соответствующих примерах.
Как видим, MySQL имеет достаточно широкий набор функций, позволяющий пользователям выполнять операции в диапазоне от простейших (получение текущего времени и даты, выполнение простых математических вычислений и т.д.) до самых сложных (вычисление тригонометрических функций, выполнение арифметических операций над датами и временем, кодирование данных). Во многих примерах также было показано, каким образом эти функции могут помочь перевести обработку с прикладного уровня на уровень базы данных, что иногда позволяет повысить производительность всей системы.

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



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Функции форматирования Все о MySQL. Обработка баз данных и таблиц