В этой статье рассмотрим несколько вариантов получения случайной даты в MySQL. Для чего это нужно? Ну к примеру для генерации фикстур и прочих тестовых данных, чтобы были похожи на реальные.
mysql
There are 13 posts tagged mysql (this is page 1 of 2).
MySQL – анализ сложных запросов
Перевод статьи про анализ сложных MySQL запросов:
Скрипт для бэкапа mysql баз
Написал для себя простенький скрипт (linux bash) для бэкапа всех баз на одном сервере. Его отличительные особенности:
- Наличие списка исключений (т.е. бэкапим все кроме…)
- Получение списка всех БД из MySQL (не надо добавлять вновь созданные базы к бекапу)
- Создание директории под бэкап вида “…/YYYY/mm/dd/HH-MM/”
- Бэкап каждой базы в отдельный файл вида “YYYY-mm-dd.HH-MM.databasename.backup.sql” (mysqldump бэкапит все в один файл)
- Архивирование бэкапа в тарбол
- Зачистка .sql
Собственно к написанию скрипта меня сподвигло именно то что mysqldump бэкапит все что ему сказано в один файл (если требуется восстановить одну базу, то попробуй ее выцарапай из общего дампа…), а создавать отдельную строку для бэкапа всякой новой БД геморно (об этом как минимум надо вспомнить!).
В общем если интересно – прошу под кат:
MySQL: не работает QCache
Интересная проблема существует в mysql 5.1.*: Query Cache не работает если имя базы данных (схемы) включает в себя дефис. Например: `super-db`.
Интересно? Тогда вам под кат:
MySQL оптимизация: ORDER BY RAND()
Лирическое вступление:
Довольно часто у нас возникает потребность выборки случайных данных из mysql базы данных. Как правило времени нет и используется самая простая конструкция вида SELECT [что-то] FROM [где-то] WHERE [то и сё] ORDER BY RAND(). Эта конструкция работает на ура. Но вот прототип выезжает на продуктовые сервера и такой милый сердцу запрос вдруг начинает выпадать в топы медленных логов. Ниже будут рассмотрены несколько возможностей для оптимизации этого запроса по нарастанию их эффективности:
i18n данные в mysql
Полезный пост от Жени Бабина: http://discover-symfony.blogspot.com/2010/05/symfony-i18n-over-mysql.html.
Рассказывается о том как XLIFF переводы (текст в шаблонах) хранить в MySQL. По образу и подобию можно воспользоваться gettext или SQLite. В принципе можно и свой адаптер написать.
Спасибо, Женя )
Сниппет: инициализация character_set и collation для Doctrine в Symfony
Для того чтобы Doctrine создавал таблицы в базе данных с правильным набором символов и collation (например utf8 и utf8_general_ci, а не latin1, используемый mysql по умолчанию (например)) необходимо выполнить простую инициализацию:
// config/ProjectConfiguration.class.php: public function configureDoctrine(Doctrine_Manager $manager) { $manager->setCharset( 'utf8' ); $manager->setCollate( 'utf8_unicode_ci' ); }
Спасибо Андрэю Дзягелю из русскоговорящего symfony-коммьюнити )
“CASE WHEN…” в Propel без потери hydrate
Постановка задачи: требуется составить Criteria для Propel, который позволяет выполнить запрос с использованием CASE WHEN и при этом не потерять выбираемые колонки и гидрацию объектов.
Volume testing: быстрое наполнение тестовых таблиц в MySQL
Представим, что вы создаете новое приложение и вам нужно протестировать его на большом объеме данных (volume testing). В этом случае вы можете взять уже готовые данные, или же подготовить их самостоятельно. Если у вас есть набор данных для тестов достаточного объема – это просто замечательно, но чаще всего данных нужного объема у вас не будет и вам будет нужен способ для быстрого их создания. Ниже будут перечислены три способа создания больших наборов данных простых типов (чисел, слов, дат).
MySQL генерация непрерывного диапазона дат
Столкнулся с ситуацией, когда посредством MySQL необходимо выбрать непрерывный диапазон дат. Казалось бы, что тут сложного? А вот что – в целевой таблице может не быть данных за какую-то из дат в диапазоне. Соответственно непрерывный диапазон не получается.
Решений наверное может быть много разных. Предлагаю ознакомиться с одним из них.
Continue reading