Эта статья задумана мной как сборник некоторых интересных моментов по использованию и оптимизации SQL запросов в БД MySQL, на мой взгляд, плохо освещенных в интернете. Так, из статьи вы узнаете о конструкции with rollup, и о том, как переписать подзапросы in и not in на join'ы, а так же обновление и удаление данных в нескольких таблицах — одним запросом, и многое другое. Начнем по-порядку.
Читать полностью »
Рубрика «mysql» - 37
Tips & tricks for MySQL. Работа с SQL
2013-10-07 в 18:25, admin, рубрики: mysql, mysql performance, mysql tricks, метки: mysql, mysql performance, mysql tricksЗадай вопрос гуру IT индустрии
2013-10-04 в 11:41, admin, рубрики: jelastic, microsoft, mysql, nosql, php, sql, Windows NT, Блог компании Jelastic, метки: jelastic, microsoft, mysql, nosql, PHP, sql, Windows NTПривет!
Рады сообщить, что в ближайшие две недели офис Jelastic навестят настоящие гуру IT индустрии: Майкл Видениус (или Монти, создатель MySQL), Расмус Лендорф («отец PHP») и Марк Збиковски (бывший архитектор компании Microsoft).

Безусловно, это большая честь для нашей команды, ну и, конечно же, возможность пообщаться со специалистами высочайшего уровня и пополнить свой багаж знаний. Мы хотим поделиться этой возможностью с читателим. Вы можете задавать любые вопросы в комментариях к этому посту, а мы передадим их адресатам. Обещаем написать все ответы сразу же после проведения встреч с Майклом, Расмусом и Марком. Читать полностью »
Mysql Отложенная репликация или Коммивояжеры с Mysql-slave
2013-09-25 в 22:39, admin, рубрики: linux, mysql, replication, метки: mysql, replication Недавно мне поставили такую задачу: Есть много коммивояжеров с ноутбуками которые разъезжают по стране и что-то кому-то впаривают продают.
Т.к. им нужны актуальные данные о наличии товара и ценах, время от времени они подключаются к центральному серверу через интернет и сливают себе обновленные данные.
Условия к задаче:
— Частота и периодичность выхода на связь коммивояжеров неизвестна, ровно как и дилтельность.
— Должно все работать максимально надежно, потому как коммивояжеры они такие «коммивояжеры».
— Решение должно быть на базе Mysql master-slave replication.
Выводы из условия:
— Для надежности, на стороне клиента(slave) минимум настроек, никаких скриптов по крону, все должно быть внутри mysql.
— Т.к. неизвестно когда и с какой периодичностью будут подключаться к master базе коммивояжеры, binlog на мастере нужно хранить так долго пока все slave не скачают его себе.
Решение:
— Информировать мастер, какие slave и сколько уже «скачали». А точнее в какой позиции самый «ленивый» slave.
— Все остальные binlog можно смело удалять.
Руководство по проектированию реляционных баз данных. Каскадное удаление данных
2013-09-22 в 21:27, admin, рубрики: mysql, sql, проектирование баз данных, метки: mysql, sql, проектирование баз данных Дополнение к циклу переведенных статей.
Статьи: 1-3, 4-6, 7-9, 10-13, 14-15
Информация в статье относится к 5-й части руководства.
В комментариях один из пользователей небеспричинно упрекнул в отсутствии информации о каскадном удалении данных. Восполняю пробел. У автора статей нет информации на эту тему, поэтому я написал небольшую статью об этом. Она достаточно логично впишется в указанный цикл.
Для начала, чтобы не было путаницы, стоит сказать, что речь не столько и не только о каскадном удалении данных, а о теме ссылочной целостности и внешних ключах, частью которой и является каскадное удаление данных.
Введение.
Если отталкиваться от обывательской позиции человека, который разрабатывает базы данных, то внешние ключи – это удобно и упрощает жизнь (в большинстве случаев, всегда есть исключения.). Даже будучи невеждой в реляционной теории баз данных, к осознанной необходимости использования внешних ключей, на определенном этапе своего развития, приходит практически любой практик (утверждение — более относится к начинающим), который не стоит на месте в своем развитии и продолжает мыслить. Даже если он еще не знает, что то, что ему нужно называется связью по внешнему ключу, он начинает самостоятельно организовывать данные определенным образом, разбивать на отдельные таблицы и связывать их между собой. Настолько это становится очевидным.
Но при использовании внешних ключей, даже если не знать такого определения, возникает необходимость следить за связываемыми данными. Рассматриваемым объектом данной статьи является, если так можно сказать, своеобразный спутник, который следует за такой организацией данных. И в данном случае уже гораздо полезнее знать теорию, т.к. это может значительно упростить жизнь в процессе работы с базой данных.
Читать полностью »
Руководство по проектированию реляционных баз данных (14-15 часть из 15) [перевод]
2013-09-22 в 18:17, admin, рубрики: mysql, sql, проектирование баз данных Продолжение.
Предыдущие части: 1-3, 4-6, 7-9, 10-13
14. Другой пример: база данных интернет-магазина.
Вы познакомились, я надеюсь, с основными концепциями создания баз данных и теперь вы можете спроектировать простую реляционную базу данных. В примере ниже я резюмирую задачи, с которыми вы столкнетесь при разработке базы данных.
P.S. Информация ниже в очень упрощенной форме моделирует мыслительный процесс при создании базы данных.
Система интернет-магазина.
Для того, чтобы получить представление о данных, которые будут использоваться, давайте обозначим задачи, которые должен выполнять интернет-магазин.
- Отображение товаров
- Классификация товаров
- Регистрация клиентов
- Добавление товаров в корзину покупок
- Отображение содержимого корзины покупок
- Оформление заказов посетителями
- И т.д.
Определяем сущности и отношения.
Из списка задач мы можем вывести сущности, которые имеют важные роли в нашей системе. Товары, категории, клиенты и заказы – сущности, которые можно найти почти в каждой базе данных интернет-магазина. В данном примере я покажу вам модель, содержащую только следующие сущности: клиент, заказ и товар. Определившись с сущностями, мы можем подумать над связями между ними.
Читать полностью »
Первый и положительный опыт Linux (сервер организации) Часть I
2013-09-19 в 13:25, admin, рубрики: jabber, linux, mysql, proxy, samba, squid3, Ubuntu, администрирование, системное администрирование, метки: jabber, mysql, proxy, samba, squid3, Ubuntu, администрированиеПочти ровно год назад пришел на новую работу, собственно как и полагалось дали мне объект, ранее если работал, то не в области администрирования. Объект покажется здесь многим, скорее всего не такой уже и большой.
На объекте примерно 80 машин, 80+-3 принтеров и 4 ксерокса. На объекте работают только бухгалтерия и юристы. Ну и как обычно полагается для обычной офисной работы (интернет, общая обменная папка, обмен мгновенными сообщениями).
С самого начало стояла старенькая машинка и умела она только раздавать интернет через CCcproxy и служила машинка ещё как обменная папка. На протяжение долго времени мне не давала покоя такая ситуация, были перепробованы и другие программные обеспечения для обеспечения интернета на рабочем месте (UserGate, Kerio Winroute) но лишний раз только убедился, что Windows Server это самое страшное, что может быть.
Собрав все свои силы, почитав сообщества пользователей Linux, нашел всю нужную информацию и приступил к работе. После осуществления задуманного и вздохнув спокойно, решил написать и поделиться своим опытом и в исходе написанного опыта надеюсь получить какие-то замечания для дальнейшего администрирования.
Читать полностью »
Руководство по проектированию реляционных баз данных (10-13 часть из 15) [перевод]
2013-09-14 в 11:43, admin, рубрики: mysql, sql, проектировние баз данных Продолжение.
Предыдущие части: 1-3, 4-6, 7-9
10. Нормализация баз данных
Указания для правильного проектирования реляционных баз данных изложены в реляционной модели данных. Они собраны в 5 групп, которые называются нормальными формами. Первая нормальная форма представляет самый низкий уровень нормализации баз данных. Пятый уровень представляет высший уровень нормализации.
Нормальные формы – это рекомендации по проектированию баз данных. Вы не обязаны придерживаться всех пяти нормальных форм при проектировании баз данных. Тем не менее, рекомендуется нормализовать базу данных в некоторой степени потому, что этот процесс имеет ряд существенных преимуществ с точки зрения эффективности и удобства обращения с вашей базой данных.
Читать полностью »
Руководство по проектированию реляционных баз данных (4-6 часть из 15) [перевод]
2013-09-10 в 22:02, admin, рубрики: mysql, sql, проектирование баз данных Выкладываю продолжение перевода цикла статей для новичков.
В настоящих и последующих — больше информации по существу.
4. ТАБЛИЦЫ И ПЕРВИЧНЫЕ КЛЮЧИ
Как вы уже знаете из прошлых частей, данные хранятся в таблицах, которые содержат строки или по-другому записи. Ранее я приводил пример таблицы, содержащей информацию об уроках. Давайте снова на нее взглянем.
![Руководство по проектированию реляционных баз данных (4 6 часть из 15) [перевод] image](https://www.pvsm.ru/images/rukovodstvo-po-proektirovaniyu-relyacionnyh-baz-dannyh-(4-6-chast-iz-15)-perevod-.gif)
В таблице имеются 6 уроков. Все 6 – разные, но для каждого урока значения одинаковых полей хранятся в таблице, а именно: tutorial_id (идентификатор урока), title (заголовок)и category (категория). Tutorial_id – первичный ключ таблицы уроков. Первичный ключ – это значение, которое уникально для каждой записи в таблице.
В таблице клиентов ниже customer_id – первичный ключ. В данном случае первичный ключ – также уникальное значение (число) для каждой записи.
Руководство по проектированию реляционных баз данных [перевод]
2013-09-10 в 9:50, admin, рубрики: mysql, sql, рсубд, СУБД, метки: mysql, sql, рсубд, СУБД Перевод цикла из 15 статей о проектировании баз данных.
Информация предназначена для новичков.
Помогло мне. Возможно, что поможет еще кому-то восполнить пробелы.
Руководство по проектированию баз данных.
1. Вступление.
Если вы собираетесь создавать собственные базы данных, то неплохо было бы придерживаться правил проектирования баз данных, так как это обеспечит долговременную целостность и простоту обслуживания ваших данных. Данное руководство расскажет вам что представляют из себя базы данных и как спроектировать базу данных, которая подчиняется правилам проектирования реляционных баз данных.
Читать полностью »
phpMyAdmin исполнилось 15 лет
2013-09-09 в 11:12, admin, рубрики: mysql, open source, phpmyadmin, администрирование, Веб-разработка, метки: mysql, phpmyadmin, администрирование
Проект phpMyAdmin появился на свет 9 сентября 1998 года, когда Тобиас Ратшиллер (Ratschiller) выпустил версию 0.9.0. За прошедшие полтора десятилетия phpMyAdmin превратился в один из основных инструментов для администрирования MySQL и других MySQL-подобных баз данных, с гордостью пишут разработчики.
Каждый месяц на официальном сервере регистрируется более 200 тыс. скачиваний, и гораздо больше пользователей берут предупакованную инсталляцию из пакетного менеджера.
К созданию phpMyAdmin причастны 669 разработчиков, а основная группа разработчиков выросла с 1 до 9 человек.
Читать полностью »

![Руководство по проектированию реляционных баз данных (4 6 часть из 15) [перевод] image](https://www.pvsm.ru/images/rukovodstvo-po-proektirovaniyu-relyacionnyh-baz-dannyh-(4-6-chast-iz-15)-perevod-2.gif)