Обновить
32.76

MySQL *

Свободная реляционная СУБД

Сначала показывать
Порог рейтинга
Уровень сложности

MySQL Performance real life Tips and Tricks. Part 3-rd.

Время на прочтение14 мин
Количество просмотров23K
Решил продолжить цикл заметок по данной тематике. В данной статье особое место хотел уделить профайлингу MySQL запросов. Описать средства, которые предоставляются MySQL для профайлинга, и что нужно делать для определения узких мест запроса.

Также, после опубликования первых двух статей я получил пару отзывов и вопросов, связанных с проектированием БД / расстановкой индексов / составлением запросов. На многие вопросы старался отвечать. С некоторыми из них поделюсь и в этой статье.

Читать дальше →

Что нового в MySQL 5.1

Время на прочтение3 мин
Количество просмотров4.2K
Осталось совсем немного времени до выхода MySQL 5.1. В статье будут рассмотрены изменения и новые возможности этой версии.
Читать дальше →

MySQL Performance real life Tips and Tricks. To be continued.

Время на прочтение6 мин
Количество просмотров8.1K
По заявкам трудящихся решил написать еще одну статью, посвященную оптимизации запросов в MySQL.

В прошлой статье habrahabr.ru/blogs/mysql/38907 рассматривались вопросы оптимизации LIMIT, GROUP BY, COUNT.

В данной статье я немного вернусь к вышеописанному и опишу пару примеров, с которыми столкнулся на проекте недавно, после этого приведу еще пару небольших примеров относительно того что такое хорошо и что такое плохо в MySQL.
Читать дальше →

MySQL Performance real life Tips and Tricks

Время на прочтение9 мин
Количество просмотров37K
Пообещал вчера написать статью о реальных случаях оптимизации БД MySQL.
Пришлось сегодня вставать утром пораньше чтобы воплотить обещанное в жизнь.
Централизованное управление мыслями поддерживать еще сложно, поэтому не судите строго за казусы и ляпсусы в моей статье.

В последнее время приходится достаточно часто заниматься оптимизацией производительности сайтов. И как правило «бутылочным горлышком» в производительности работы этих сайтов является именно БД, ошибки как в архитектуре так и в выполнении запросов. Начиная от неправильной расстановки индексов, либо совершенным их отсутствием, неправильным (неэкономным) выбором типов данных под определенное поле, заканчивая абсолютно нелогичной архитектурой БД и такими же нелогичными запросами.

В данной статье опишу несколько приемов, которые были использованы для приложения с 4млн+ пользователей и которое имея порядка 100млн+ хитов в сутки, а в конце опишу задачу, которая решалась недавно и может быть многоуважаемое сообщество предложит мне решения этой задачи более эффективное нежели то, к которому пришел я.

Читать дальше →

High Performance MySQL, Second Edition

Время на прочтение1 мин
Количество просмотров6.3K
Наконец нашел на бесплатном торренте эту долгожданную книгу, тут недавно её продавали за 10 вмз :-)
Но теперь каждый может скачать её бессплатно!!! :-) Что и я сделал и уже наслаждаюсь чтением этой книги.

http://www.btmon.com/Other/Unsorted/High_Performance_MySQL_2nd_Edition_Jun_2008_eBook-DDU.torrent.html

P.S. Спасибо всем, кто мне добавил кармы, я благодаря этому смог выполнить свое обещание и написать эту статью
habrahabr.ru/blogs/mysql/38907

Триггеры в MySQL

Время на прочтение2 мин
Количество просмотров305K
Триггер — это хранимая процедура, которая не вызывается непосредственно, а исполняется при наступлении определенного события ( вставка, удаление, обновление строки ).
Поддержка триггеров в MySQL началась с версии 5.0.2
Читать дальше →

Типы данных в MySQL (сжатый справочник для PHP программиста)

Время на прочтение5 мин
Количество просмотров104K
Что и как и как много хранит MySQL?

Данный материал создан специально для программистов, которые быстро смогут определиться какой тип данных лучше выбрать для хранения значений в БД MySQL.

Для затравки, интересная цитата из мануала по MySQL:
«Максимальный размер записи в MyISAM составляет 65534 байтов. Каждый BLOB или TEXT-столбец засчитывается здесь как 5-9 байтов.» — как это трактовать однозначно не понятно. НО ясно что много-примного столбцов в таблицу на засунешь. «Извращенистые программисты» — будьте аккуратны (66000 столбцов вы точно создать не сможете).

UPD: Если найдете ошибку, или я что-то где-то утаил — отпишитесь в комментах, с удовольствием добавлю.

UPD1 В первую очередь (и самый лучший вариант для новичков) прочитать ОФИЦИАЛЬНЫЙ МАНУАЛ dev.mysql.com/doc/refman/5.0/en/data-types.html (спасибо Psyh за прямую ссылку), а здесь вырезка для META обработчиков данных (как в лице программистов так и в лице машинной обработки).

UPD2 В принципе, все что написано ниже, можно прочитать по адресу www.mysql.ru/docs/man/Column_types.html (за ссылку «русского перевода», спасибо artuska).

UPD3 Еще одну неплохую ссылку предоставил 4all: newcontinent.ru/h/mysqlc (материал на русском)

UPD4 Цитата из комментов от egorF:
# 14«Как главный редактор русскоязычного перевода доки на MySQL, я рекомендую в него не заглядывать — он уже сказочно морально устарел.»

Читать дальше →

Поиск: FULLTEXT или LIKE?

Время на прочтение2 мин
Количество просмотров40K
Наверное каждый разработчик подходил к моменту выбора между двумя решениями одной задачи и естесвенно решающим фактором выбора является наиболее быстрый способ (по времени процесса). Так и я в ходе разработки поиска для своей CMS задался вопросом: что лучше, делать поиск по базе используя полнотекстовой индекс или с помощью оператора сравнения LIKE, имея небольшое количество информации.

Для того, чтобы ответить на свой вопрос я провел небольшой опыт: создал таблицу с четырмя полями (два из которых использовались для поиска и были проиндексированы FULLTEXT'ом) содержащую 5 000 строк. Поля по которым производился поиск содержали по 255 символов, случайно выбранных из одного большого текста. Поиск производился так же по случайным словам не короче 4-х символов.
Читать дальше →

Вопросы авторам MySQL на PHPConf 2008 29-30мая в Москве

Время на прочтение1 мин
Количество просмотров678

Появилась идея собрать самые лучшие вопросы авторам MySQL,
которые приедут пообщаться на PHPConf 2008.

Предлагаю собирать их в этом топике до 15 мая.

P.S. Чур вопрос — когда MySQL кластер будет работать с HDD не предлагать ;-)

На Facebook уже 10 000 серверов

Время на прочтение1 мин
Количество просмотров4.7K
Инфраструктура крупнейшей социальной сети продолжает расти в геометрической прогрессии. На днях технический директор Facebook на конференции по MySQL огласил (видео) свежие данные: оказывается, на проект сейчас работает уже 10 000 серверов, в том числе 1 900 серверов MySQL, а обслуживают их всего два администратора баз данных.

В отличие от Google, Yahoo и Microsoft, компания Facebook не строит свои собственные дата-центры, а арендует чужие новостройки по мере необходимости. Совсем недавно к числу арендуемых добавились два новых дата-центра: в Вирджинии (октябрь 2007) и Калифорнии (февраль 2008).

Теперь становится понятно, почему IBM позиционирует новые серверы iDataPlex специально для Веб 2.0, ведь на них действительно есть спрос со стороны тех же Facebook, Yahoo, Microsoft и Amazon.

Технический директор также рассказал, что Facebook по-прежнему активно использует систему кэширования Memcached для оптимизации работы динамических веб-приложений. На сегодняшний день это самый крупный проект в мире на базе Memcached (805 серверов).

Использование MySQL как файловой системы

Время на прочтение1 мин
Количество просмотров2.7K
Продолжая эту тему хочу вернуться к вопросу файловой базы данных.

Интересно, что файлы в базе хранятся повторяя структуру классической ФС: файлы разбиты на блоки размером 4 Кб, хранящиеся в отдельных «blob» записях. Всего имеется 3 таблицы типа MyISAM: tree (дерево файловой системы и имена файлов), inodes (права доступа и параметры файла) и data_blocks (блоки данных).

Читать дальше →

Оптимизация работы с MySQL

Время на прочтение3 мин
Количество просмотров79K
Ни для кого не секрет, что работа с базой данных занимает большую часть работы практически любого сайта. И именно работа с БД чаще всего является узким местом веб-приложений.
В этой статье хотелось бы дать практические советы использования MySQL.
Сразу оговорюсь:
  • данная статья написана про MySQL, хотя общие вещи скорее всего справедливы для любой СУБД.
  • все написанное в статье является моей личной точкой зрения, и не является истиной в последней инстанции.
  • советы не претендуют на новизну и являются результатом обобщения прочтенной литературы и личного опыта.
  • в рамках данной статьи я не буду касаться вопросов конфигурирования MySQL.

Проблемы при использовании MySQL можно разделить на следующие три группы(в порядке значимости):
  1. Неиспользование или неправильное использование индексов.
  2. Неправильная структура БД.
  3. Неправильные \ неоптимальные SQL запросы.

Остановимся на каждой из этих групп подробнее.
Читать дальше →

MyISAM хотят заменить на новый движок Maria

Время на прочтение2 мин
Количество просмотров1.3K
Инициативная группа MySQL AB Maria, состоящая из шести человек и возглавляемая Michael «Monty» Widenius (создатель MySQL и MyISAM), выпустила тестовую версию нового движка хранения данных Maria.
Читать дальше →

Ближайшие события

Sun купила MySQL

Время на прочтение1 мин
Количество просмотров2.1K
sun with mysql

Только сейчас наткнулся на новость о том, что Sun Microsystems купила MySQL AB за 1 миллиард долларов. Наверное это будет серьезным толчком в развитии этой СУБД. А вы как считаете, что за этим последует?

Facebook открывает новые дата-центры

Время на прочтение1 мин
Количество просмотров1K
Тысячи серверов в собственных дата-центрах Facebook с трудом выдерживают нагрузку. Каждую неделю на сайте регистрируется почти два миллиона новых пользователей вдобавок к имеющимся десяткам миллионов. Все они проводят на сайте в среднем по нескольку часов и загружают сотни страниц в день, что создаёт немалые проблемы для инженеров. Один из программистов Facebook рассказывает в корпоративном блоге, с чем приходится иметь дело.

Несколько недель назад нагрузка в калифорнийских дата-центрах Facebook достигла максимума. Раньше в таких ситуациях они докупали ещё пару десятков серверов, но сейчас этот способ невозможен. В дата-центрах кончилось место для установки новых стоек.

Впрочем, инженеры Facebook эту ситуацию предвидели заранее и уже давно начали обустройство нового дата-центра в Вирджинии, который сейчас введён в строй. Судя по всему, это далеко не последний дата-центр компании Facebook.
Читать дальше →

mysqldump в csv формате

Время на прочтение1 мин
Количество просмотров12K
Значится так — есть задача вытянуть данные из таблицы mysql в простенький csv файлик, дабы его открыть быстренько в excel. Зачем белым людям нужна такая магия — мне никогда не понять, но раз заказчик попросил, то я сделал. Итак, отдаёмся во власть консоли и пишем:
mysqldump -u [USER_NAME] -p "--where=[WHERE]" "--fields-terminated-by=," "--tab=./" [DB_NAME] [TABLE] > [TABLE].txt

Вот и вся любовь (на выходе получим два файла — один с SQL и второй с CSV)

p.s. директория в которой выполняется эта команда должна быть открыта для записи, иначе оно ругаться будет ;)

4-я Встреча Moscow MUG — Проектирование индексов, 29.11

Время на прочтение1 мин
Количество просмотров696
29 ноября, в четверг, в 19-00 при поддержке клуба «Бизнес в стиле RU»
пройдёт 4-я встреча Moscow MySQL User Group

Тема встречи: Проектирование индексов

Встречу будет проводить Руслан Закиров,
ведущий разработчик компании Best Practical Solutions,
которая занимается разработкой открытых продуктов
Request Tracker, SVK, Jifty, а также сервиса HiveMinder.com

План встречи
1. Общие принципы устройства индексов.

2. Работа планировщика запросов:
— как планируется запрос
— как выполняется
— где в этой схеме индексы, сколько их.

3. Рассмотрим планы под лупой с помощью EXPLAIN:
— когда его читать
— как его читать, на что смотреть
— как его поменять используя индексы
— как его поменять используя дополнительные директивы
— и зачем это нужно.

4. Примеры:
Везде будут примеры, но более подробно мы остановимся на запросах, которые были на прошлой встрече в докладе и выжмем из них все соки, а также будут несколько примеров для демонстратиции различных эффектов и методов декомпозиции с целью увеличения эффективности использования индексов.
Чтобы попасть на семинар, зарегистрируйтесь по ссылке

Адрес проведения: Москва, Мясницкая, 20, ГУ-ВШЭ, Аудитория 116

3-я встреча Moscow MUG: MySQL и memcached

Время на прочтение1 мин
Количество просмотров947
1-го ноября, в 19-00 в аудитории 116 здания ГУ-ВШЭ на Мясницкой, 20 состоится очередная встреча Moscow MySQL User Group. В качестве ведущего выступит Михаил Монашёв.

Михаил расскажет, как он с коллегами использует MySQL с мемкешедом в проекте beon.ru.

Если Вы никогда ранее не работали с мемкешедом, то узнаете что это за зверь и как с его помощью ускорить работу с MySQL-ем.

Если уже используете его в своих проектах, то возможно узнаете, как это можно делать оптимальнее.

Встреча проводится при поддержке клуба «Бизнес в стиле .RU» и для участия в ней необходимо обязательно зарегистрироваться по адресу styleru.net/register, чтобы попасть в здание ГУ-ВШЭ.

Вторая встреча Moscow MySQL User Group

Время на прочтение1 мин
Количество просмотров975
26-го сентября, в 19-00 в аудитории 116 здания ГУ-ВШЭ на Мясницкой, 20 состоится очередная встреча Moscow MySQL User Group. (Первая была 2 августа.) В качестве гостя выступит Пётр Зайцев — консультант в области разработки и настройки высоконагруженных веб-систем, использующих СУБД MySQL.

Пётр Зайцев работал техническим директором компании SpyLog, был сотрудником Группы высокой производительности компании MySQL AB, а в последние годы руководит собственной консалтинговой компанией, выступает на конференциях (например, HighLoad, которая сегодня начинается), проводит семинары и ведёт блог MySqlPerformanceBlog.com.
Пётр расскажет о своём видении развития СУБД MySQL, опыте работы на консалтинговых проектах по настройке высоконагруженных систем и ответит на вопросы.

Встреча проводится при поддержке клуба «Бизнес в стиле .RU» и для участия в ней необходимо обязательно зарегистрироваться по адресу http://styleru.net/register, чтобы попасть в здание ГУ-ВШЭ.

MySQL AB закрывает доступ к коду MySQL Enterprise Server

Время на прочтение1 мин
Количество просмотров1.1K
Компания MySQL AB, разработчик одноименной системы управления базами данных, намерена убрать из открытого доступа исходные коды корпоративной версии MySQL Enterprise Server. Об этом сообщил в своем блоге Кай Арно (Kaj Arno), вице-президент MySQL AB.

Читать дальше →

Вклад авторов