Написать письмо   
 
logo
 
Snippy
Сборник
примеров кода
Партицирование - простой в использовании (по крайней мере, относительно MySQL) механизм разбиения больших таблиц на части, позволяющий увеличить скорость выборки данных из этих таблиц.
При создании таблицы указываются партиции и условия для данных, по которым определяется в какую партицию попадут данные.
Использование партиций никак не отражается на синтаксисе запросов - они остаются неизменными.

На хабре есть небольшая статья, в которой хорошо расписано как использовать в своей работе партицирование.



Формат хранения дата и даты с временем в базе данных MySQL отличается от того, каким мы привыкли его видеть.
C помощью следующей функции вы сможете отформатировать дату в привычный вид.
Читать дальше...


Функция получает в качестве параметра время в формате MySQL Timestamp и возвращает его в формате Unix.
Читать дальше...


Парсит текстовый файл со списком mySQL запросов которые необходимо выполнить. Класс пропускает комментарии и читает все строки до ; для сбора законченного sql. Каждый запрос выполняется как mySQL запрос в дефолтовом соединении с БД.
Читать дальше...


Предположим есть таблица с сохраненным полным XML документом в одном столбце и необходимо извлечь конкретный элемент для отображения, сортировки, проч. Хранимая процедура приведенная ниже, сделает эту работу. Необходимо выставить log_bin_trust_routine_creators в единицу: SET GLOBAL log_bin_trust_routine_creators = 1;
Читать дальше...


Подсчет кол-ва недель в месяце имеющих специфический день (Пон, Вт, Ср и тд), первый день месяца, кол-во рабочих часов исключая выходные.
Читать дальше...


Для использования этого скрипта вам необходимо иметь таблицу с таким же кол-вом полей как и в текстовом файле. Пример : a a@a.com b b@b.com Теперь таблица БД должна иметь 2 поля: имя и e-mail
Читать дальше...


У вас есть набор многих ресурсов и вам необходимо знать какие из этих ресурсов доступны на нужный период времени, но mySQL не поддерживает sub-selection :( Вот как это можно сделать одним запросом:
Читать дальше...


Ключи массива должны совпадать с именами столбцов и табличная переменная должна содержать имя таблицы для вставки. Функция может быть несложно модифицированна для UPDATE.
Читать дальше...


Программа аплоадит ODBC ресурс (MS Access БД в mySQL). Таблица должна существовать в mySQL. Программа определяет какие поля определены в mySQL таблице и затем закачивает соответствующие поля из ODBC ресурса. При вызове без аргументов будет показан список таблиц в БД mySQL
Читать дальше...


Пригодится для выборки из базы списка людей у кого скоро будет день рождения.
Читать дальше...


Следующий код позволяет получить метаданные БД mySQL:
Читать дальше...


Для выборки случайного ряда из таблицы можно воспользоваться запросом: SELECT * FROM table ORDER BY RAND() LIMIT 1; Однако для лучшей производительности при большом количестве рядов и наличии первичного индекса по полю id который идет БЕЗ ПРОПУСКОВ, в целях оптимизации производительности лучше воспользоваться двумя выборками с генерацией случайного числа на стороне PHP скрипта:
Читать дальше...


Бывают ситуации когда возникает необходимость обновить ряд с указанным ID, либо при отсутствии этого ID, вставить соответствующую ему запись. Таким образом нужно проверить есть ли в таблице запись с нужным ID через SELECT, если есть то выполнить UPDATE, иначе вставить ряд с помощью INSERT. Но есть более оптимальный путь, это использование в запросе вставки ON DUPLICATE KEY UPDATE. Что делает приведенный запрос? Запрос говорит следующее: вставить новый ряд, НО если ряд с указанным ID уже существует, то просто обновить в нем поле column. Следует учесть, что ID должен быть первичным или уникальным ключом!
Читать дальше...


Например, почему не работает такой запрос: SELECT * FROM tableName WHERE charFieldName LIKE "%\\%" - выбрать из таблицы tableName ряды в которых поле charFieldName содержит обратный слэш (\). При этом сам обратный слэш в запросе экранирован. Ответ: Потому что запрос неправильно записан. Чтобы выполнить поиск символа '\', его следует указать как '\\\\'. Причиной такой записи является то, что обратные слэши удаляются дважды: сначала синтаксическим анализатором, а потом - при выполнении сравнения с шаблоном, таким образом остается только один обратный слеш, который и будет обрабатываться.
Читать дальше...


Пример скрита, который экспортирует данные из базы данных в таблицу Excel. Используется модуль Spreadsheet из репозитория Pear.
Читать дальше...


Пример скрипта для упрощения процесса создания бэкапа баз данных mysql/
Читать дальше...


Подсчет кол-ва запросов и затраченного времени к БД MySQL. Полностью рабочий вариант.
Читать дальше...


Удобный способ информирования о ошибках mysql, вместо обычного die(mysql_error()), особенно когда в скрипте используется много запросов к базе данных.
Читать дальше...


Пример экспорта результатов mysql запроса к базе данных в формат csv.
Читать дальше...


Идея состоит в том, что мы просто создаём дамп исходной базы, при этом указывая mysqldump, что никаких деклараций CHARSET и иже с ними указывать не надо, затем скармливаем полученный дамп iconv, который преобразует весь latin1 в utf8, а затем преобразованный файл отдаём mysql (при этом указываем, что charset по умолчанию у нас utf8)
Читать дальше...


Создает условия для простого поискового SQL запроса, основанного на LIKE и REGEXP.
Поисковая фраза и данные в таблице БД д.б. в кодировке UTF-8!

LIKE используется для оптимизации скорости (и стоит в условии первым!),
REGEXP -- для точного поиска целых вхождений слов и чисел.

Синтаксис и примеры поискового запроса:
"квантов* механик*", "сервер 3.4GHz 1024Mb", "смысл* жизни" -- ищутся вхождения всех слов (логическое "И")
"квантов* | механик*" -- ищутся вхождения любого найденного (логическое "ИЛИ")
Необязательный символ "*" заменяет ноль или более букв и может стоять только в конце слова!
В начале или в середине слова звёздочка стоять не может!
Регистр слов при поиске не учитывается!
Читать дальше...


Пример как получить список доступных баз данных.
Читать дальше...


Функция генерирует список существующих таблиц в указанной базе данных.
Читать дальше...


Это делается очень просто - необходимо просто пройтись по каждой таблице БД сложить размер данных и индекса БД.
Читать дальше...


Фильтрационная защита от XSS-атак и SQL-инъекций.
В PHP есть ряд специальных функций для работы со строками, применимых для этой цели.
На основе этих функций, можно собрать функцию для однозначной очистки непроверенных данных. Эта функция получает две переменные - строку с введёнными символами и булево значение для определения - требуется ли приведение к MySQL-запросу. Возвращает функция очищенную строку. Конечно, это не панацея, но функцию легко изменить под собственные нужды.
Читать дальше...


Простая, но полезная функция - возвращает сразу весь результат MySQL запроса, в виде набора ассоциативных массивов.
Читать дальше...


Универсальный скрипт для подключения к базе данных - скрипт определяет наличие расширения MySQLi, если оно загружено присоединяется к базе данных посредством интерфейса MySQLi, если нет, то по интерфейсу MySQLi.
Читать дальше...



Возвращает значение одной ячейки результата запроса. Работает через интерфейс MySQL или MySQLi, в зависимости от того загружены ли соответствующие расширения.
Читать дальше...


[ 1 ] [ 2 ]