Как стать автором
Обновить
16.44

MySQL *

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

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

Marten Mickos увольняется из Sun Microsystems

Время на прочтение1 мин
Количество просмотров1.1K
Marten Mickos (Мартен Микос?), занимавший пост исполнительного директора MySQL AB до того, как Sun купила компанию, увольняется. После поглощения MySQL AB, Мартен занял пост вице-президента по направлению «базы данных» (senior vice president of Sun Microsystems' database group).
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии7

Особенность оптимизатора MySQL 5.1.30 порядок следования таблиц в UPDATE

Время на прочтение1 мин
Количество просмотров977
Добрый день. Я расскажу об одной из забавных особенностей оптимизатора MySQL 5.1.30, которая заставляет перед обновлением внимательно проверить запросы.
Для любопытных: «теперь SET-выражения выполняются не в порядке следования выражений слева направо, а в порядке следования обновляемых таблиц».
Но, всё по порядку.
Всего голосов 45: ↑43 и ↓2+41
Комментарии16

Восстановление базы MySQL из бинарных логов

Время на прочтение2 мин
Количество просмотров43K
Базы данных иногда пропадают. Человеческий фактор и всё-такое… Если вы не делали бекапов (а надо бы) или они уже устарели, не отчаивайтесь, — есть ещё возможность восстановить утерянную информацию.

Подробнее
Всего голосов 65: ↑60 и ↓5+55
Комментарии28

Кто победит — слон или кит? Совместная встреча московских групп пользователей MySQL и PostgreSQL.

Время на прочтение2 мин
Количество просмотров1.7K
PostgreSQL и MySQL — две самых распространенных системы управления базами данных в интернете.

image

MySQL используется в таких высоконагруженных проектах как Wikipedia, facebook, flickr, Digg, YouTube, на хабрахабре и практически на всех сайтах, работающих под управлением Drupal и Wordpress.

Не уступает и Postgres — без него не работал бы Skype, его используют популярные в Америке социальные сети myyearbook.com и hi5.com, не работали бы без него и наши отечественные Мой Круг, smotri.com и Мир Тесен.
Свежие версии Друпала декларируют поддержку PostgreSQL, а вместо Wordpress можно использовать Movable Type. Из других любопытных приложений, использующих Postgres можно вспомнить 1С: Предприятие 8 и некоторые другие корпоративные информационные системы.

Какая же СУБД лучше? Для каких задач? Как одни и те же задачи решают в разных средах?

22 января 2009 года в Москве при поддержке клуба «Бизнес в стиле .RU» состоится уникальное событие — cовместная встреча московских групп пользователей MySQL и PostgreSQL.

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

Предварительный состав участников встречи:
  • Константин Осипов, Sun/MySQL
  • Виктория Резниченко, Sun/MySQL
  • Алексей Рыбак, Badoo.com
  • Фёдор Сигаев, PostgreSQL Global Development Group
  • Олег Бартунов, PostgreSQL Global Development Group
  • Андрей Смирнов, NetStream
Ведущий встречи — Николай Самохвалов, компания Постгресмен.

Встреча пройдет в здании Государственного университета — Высшей школы экономики на Покровском бульваре, дом 11 (станции метро Курская/Чкаловская или Китай-город), в аудитории В-201. Вход — со стороны Покровского бульвара, через корпус Е.

Начало — в 19-00.

Для участия во встрече необходимо пройти предварительную регистрацию: reg.styleru.net/registration/pgsqlvsmysql

Итак!
1. Регистрируемся.
2. Приходим к 19-00 на главный вход.
3. Показываем документ (паспорт, водительское удостоверение, студенческий билет, что угодно, где есть ваше имя и фамилия).
4. Проходим по указателям до аудитории В-201 и общаемся с докладчиками!
Всего голосов 45: ↑33 и ↓12+21
Комментарии38

Истории

Через год

Время на прочтение1 мин
Количество просмотров1.1K
Может это и правильно, но как-то неожиданно.

select
'2008-02-27' + INTERVAL 1 YEAR, -- 2009-02-27
'2008-02-28' + INTERVAL 1 YEAR, -- 2009-02-28
'2008-02-29' + INTERVAL 1 YEAR, -- 2009-02-28
'2008-03-01' + INTERVAL 1 YEAR; -- 2009-03-01


UPD По результатам обсуждения резюмирую:
а) это стандартное поведение и других СУБД и более того
б) данный способ расчета годового периода узаконен и применяется в офлайн.
Всего голосов 79: ↑64 и ↓15+49
Комментарии58

Представления (VIEW) в MySQL

Время на прочтение10 мин
Количество просмотров450K
В комментариях Хабра упоминались вопросы по использованию представлений. Данный топик является обзором представлений, появившихся в MySQL версии 5.0. В нем рассмотрены вопросы создания, преимущества и ограничения представлений.

Что такое представление?


Представление (VIEW) — объект базы данных, являющийся результатом выполнения запроса к базе данных, определенного с помощью оператора SELECT, в момент обращения к представлению.

Представления иногда называют «виртуальными таблицами». Такое название связано с тем, что представление доступно для пользователя как таблица, но само оно не содержит данных, а извлекает их из таблиц в момент обращения к нему. Если данные изменены в базовой таблице, то пользователь получит актуальные данные при обращении к представлению, использующему данную таблицу; кэширования результатов выборки из таблицы при работе представлений не производится. При этом, механизм кэширования запросов (query cache) работает на уровне запросов пользователя безотносительно к тому, обращается ли пользователь к таблицам или представлениям.
Читать дальше →
Всего голосов 105: ↑104 и ↓1+103
Комментарии22

Блокировки в MySQL

Время на прочтение4 мин
Количество просмотров109K
На хабре часто обсуждаются принципы работы MySQL. Данный хабратопик посвящен механизмам блокировок, используемым в MySQL. Топик поможет начинающим изучать MySQL и, в некоторой степени, опытным хабралюдям.

Механизм блокирования в MySQL


Одновременный доступ нескольких клиентов к хранилищу данных может приводить к ошибкам различного типа. Например, одновременное чтение одним клиентом и запись другим клиентом одной и той же строки таблицы с большой вероятностью приведет к сбою или чтению некорректных данных. Механизмы блокировок позволяют избежать ситуаций одновременного доступа к данным, регламентируя механизм взаимодействия пользователей между собой.
Читать дальше →
Всего голосов 65: ↑62 и ↓3+59
Комментарии18

Курсоры в Mysql.

Время на прочтение6 мин
Количество просмотров111K
По долгу службы мне пришлось сталкиваться с курсорами. Хотелось бы рассказать, что это такое и о некоторых особенностях работы с ними. Официальная документация тут — dev.mysql.com/doc/refman/5.1/en/cursors.html Википедия даёт такое определение курсору курсор:
Читать дальше →
Всего голосов 44: ↑40 и ↓4+36
Комментарии13

Форматирование длинных SQL-запросов

Время на прочтение1 мин
Количество просмотров15K
Вступил недавно в локальный оффлайн-холивор на тему форматирования длинных SQL-запросов.

Собственно, весь холивор сводится к тому, что удобнее читать — INNER JOIN ДО таблицы, или ПОСЛЕ неё, а так же — AND — до или после обьявления условия.

Два варианта и вопрос к хабровчанам под катом:

Читать дальше →
Всего голосов 67: ↑42 и ↓25+17
Комментарии94

Хранение файлов в MySQL и их быстрая раздача

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

Больше о проблемах, возникающих при хранении файлов отдельно от БД можно почитать в презентации SQL Antipatterns, раздел Phantom Files, страница 60. Кстати, автор презентации предлагает решение — хранить файлы прямо в БД, в поле типа BLOB. Правда следует замечание, что это должно быть взвешенное решение в каждом конкретном случае. Ведь при таком способе хранения файлов вебсервер должен при каждом запросе вызывать некий скрипт, который будет извлекать файл из БД и отдавать пользователю, что неминуемо отрицательно скажется на производительности.
Для поиска решения данной проблемы был проведен мозговой штурм и придумано несколько вариантов решения проблемы:
Читать дальше →
Всего голосов 71: ↑59 и ↓12+47
Комментарии99

Kaj Arnö: MySQL и Sun — как дела?

Время на прочтение2 мин
Количество просмотров791
Кай Арно

Кай Арно, вице-президент MySQL AB по работе с сообществом пользователей — удивительный человек.

Он родом из Финляндии, а сам по происхождению швед (и похож этим на Линуса Торвальдса).
Он любит Россию, но не знает русского. Это не мешает ему вести свой блог на русском языке — blogs.arno.fi/fandorin.
Для этого он пишет текст на английском, переводит его на русский через Google Translate, и если в обратном переводе с русского на английский ещё что-то можно понять — публикует. Получается неплохо.

В 2001 году он продал MySQL AB половину своей компании, занимающуюся обучением MySQL, и с тех пор работал в корпорации вице-президентом по консалтинговым услугам, вице-президентом по разработке, и в итоге, с 2005 года — вице-президентом по связям с с пользовательским сообществом.

С тех пор как Sun купила MySQL AB в феврале этого года, Кай ездит по всему миру и помогает разработчикам, клиентам и сообществам пользователей Sun и MySQL найти общий язык и научиться сосуществовать в гармонии.

На днях Кай Арно приезжает в Москву и будет рассказывать о том, какой будет новая жизнь MySQL и каковы перспективы его развития при поддержке Sun — компании, которая известна своей благосклонной к opensource-сообществу политикой.

Встречу с Каем организует московская группа пользователей MySQL при поддержке клуба «Бизнес в стиле .RU».
Встреча начнется сегодня, в понедельник 1 декабря в 19-00 в Москве в здании Высшей школы экономики на улице Мясницкой, дом 20, в аудитории 124.

Времени чтобы зарегистрироваться на встречу осталось очень мало, но ещё можно успеть — для этого надо заполнить форму по адресу reg.styleru.net/registration/mmug.

Помимо Кая на встрече выступит Константин Осипов — лидер команды разработчиков ядра MySQL. Он поделится откровениями о том, что нового будет в MySQL 6.0 и расскажет о различных хитростях оптимизации работы версии 5.1, которая на прошлой неделе наконец-то вышла из статуса беты и обрела статус Generally Available.

Итак!
1. Регистрируемся.
2. Приходим к 19-00.
3. Показываем документ (паспорт, водительское удостоверение, студенческий билет, что угодно, где есть ваше имя и фамилия).
4. Проходим по указателям до аудитории и общаемся с докладчиками!
Всего голосов 56: ↑47 и ↓9+38
Комментарии28

Все то, о чем мы так долго мечтали — первый официальный релиз MySQL 5.1

Время на прочтение1 мин
Количество просмотров728
Собственно сегодня наткнулся на ссылку http://lists.mysql.com/announce/565 и сразу спешу поделиться с хабро-сообществом.

Здесь говорится, что сегодня вышел первый релиз MySQL Server 5.1.30 Generally Available (GA), который является первым релизом, рекомендованным для использования на продакшн серверах.

Основные нововведения в версии 5.1. представлены по этой ссылке http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html

А также описаны в статье tuta_larsonЧто нового в MySQL 5.1

Также немаловажно будет ознакомится со списком открытых багов для версии 5.1. — http://dev.mysql.com/doc/refman/5.1/en/open-bugs.html


Ну и собственно ссылка на скачивание — http://dev.mysql.com/downloads/
Всего голосов 57: ↑53 и ↓4+49
Комментарии33

MySQL и JOINы

Время на прочтение6 мин
Количество просмотров148K
Поводом для написания данной статьи послужили некоторые дебаты в одной из групп linkedin, связанной с MySQL, а также общение с коллегами и хабролюдьми :-)

В данной статье хотел написать что такое вообще JOINы в MySQL и как можно оптимизировать запросы с ними.

Читать дальше →
Всего голосов 85: ↑83 и ↓2+81
Комментарии67

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

19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн

Постраничная навигация с MySQL при большом количестве записей

Время на прочтение7 мин
Количество просмотров41K
Рано или поздно многие крупные проекты сталкиваются с проблемами производительности при постраничной навигации по записям. Некоторые из них решают эту проблему ограничением количества доступных для просмотра записей (скажем, не больше 1000). Вполне приемлемое решение. Но в этом случаем могут возникнуть проблемы с индексированием сайта сторонними поисковиками, которые и представляют наибольшую угрозу. В этой статье я хотел бы отказаться от привычной для всех панели навигации вида «1..2..3..4..» в пользу простой «вперед… назад» (будет проще объяснить), но это не проблема реализовать подобное и с первым вариантом.
Более точно определить тему, назвав, какое количество записей считать достаточно большим для появления тормозов, не получится, так как эта цифра для всех разная и сильно зависит от того, насколько быстрые у Вас жесткие диски, сколько памяти, и какая часть Ваших данных уже закеширована в ней и тд. Но если Вы и Ваши сервера ощущают, что n-ная страница при выводе даётся тяжелее первой, и при этом не знаете, что с этим делать – статья для Вас. Но для начала, я хотел бы на пальцах объяснить, почему ОНО работает медленно.

Кстати, тест происходит на виртуальной машинке, работаю я с СУБД под рутом, версия MySQL – 5.0.32.
Читать дальше →
Всего голосов 139: ↑135 и ↓4+131
Комментарии81

Медленный UPDATE vBulletin — в чем подвох?

Время на прочтение1 мин
Количество просмотров1.1K
Купил лицензию на vBulletin на два форума. На одном — летает круглые сутки (около 20000 зарегистрированных пользователей), на другом — начинает тормозить к вечеру (120000 пользователей).
Посещаемость одинаковая — 50-100 человек онлайн. Запустил на тормозящем форуме Debug Mode, оказалось что самый последний запрос занимает вплоть до 16 секунд!
UPDATE user
SET lastactivity = 1226505039
WHERE userid = 1

Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии40

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

Время на прочтение4 мин
Количество просмотров125K
В повседневной работе приходится сталкиваться с довольно однотипными ошибками при написании запросов.

В этой статье хотелось бы привести примеры того, как НЕ надо писать запросы.
Читать дальше →
Всего голосов 143: ↑132 и ↓11+121
Комментарии142

MySQL Query Cache

Время на прочтение5 мин
Количество просмотров110K
В MySQL есть очень полезная функциональность — кеш запросов. Кеш запросов доступен в MySQL начиная с версии 4.0.
Многие СУБД имеют подобную функциональность, но в отличие от MySQL они кешируют планы выполнения запросов, тогда как MySQL кеширует результаты запросов.
Дальше о том, как работает кеш запросов, как его настраивать и оптимально использовать.
Читать дальше →
Всего голосов 70: ↑67 и ↓3+64
Комментарии60

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

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

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

Читать дальше →
Всего голосов 56: ↑54 и ↓2+52
Комментарии40

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

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

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

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

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

В данной статье я немного вернусь к вышеописанному и опишу пару примеров, с которыми столкнулся на проекте недавно, после этого приведу еще пару небольших примеров относительно того что такое хорошо и что такое плохо в MySQL.
Читать дальше →
Всего голосов 84: ↑80 и ↓4+76
Комментарии65

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