11.05.09 12:40Вышел MySQL Sandbox 3.0

Вышел долгожданный релиз MySQL Sandbox 3.0 утилиты для простой и быстрой установки различных версий MySQL независимо друг от друга.
Новые возможности включают:

  • Инсталяция в качестве Perl модуля
  • Копирование, перемещение и удаление серверов
  • Проверка порта перед инсталяцией
  • Набор более чем из 200 тестов
  • Подробная документация
  • Более гибкая модульная структура

Комментариев нет | Рубрики: MySQL, Новости

11.04.09 22:25Релиз MySQL Proxy 0.7.0

Доступен очередной релиз MySQL Proxy - 0.7.0.
Среди основных изменений:

  • Модульная структура
  • Добавлены новые утилиты: mysql-binlog-dump и mysql-myisam-dump
  • Улучшенное быстродействие по сравнению с прошлой версией

И многи другие. Полный список тут.

Комментариев нет | Рубрики: MySQL, Новости

11.04.09 12:43EXPLAIN: filesort

В распоряжении MySQL есть несколько способов получить отсортированный результат. В EXPLAIN они отображаются как range, ref или index. Все они используют индекс для сортировки. Во всех прочих случаях используется filesort.

MySQL:
  1. mysql> EXPLAIN SELECT * FROM city ORDER BY Name;
  2. +----+-------------+-------+------+---------------+------+---------+------+------+----------------+
  3. | id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra          |
  4. +----+-------------+-------+------+---------------+------+---------+------+------+----------------+
  5. 1 | SIMPLE      | city  | ALL  | NULL          | NULL | NULL    | NULL | 4079 | USING filesort |
  6. +----+-------------+-------+------+---------------+------+---------+------+------+----------------+
  7. 1 row in SET (0.00 sec)

Не смотря на название, к файлам этот алгоритм имеет мало отношения.
Читать дальше...

Комментариев нет | Рубрики: MySQL

08.04.09 14:47Ошибка с NULL и IN в MySQL 5.1

Согласно этому баг репорту, в MySQL 5.1.32 присутствует ошибка оптимизатора, которая приводит к сканированию всей таблицы вместо использования индексов.
Читать дальше...

Комментариев нет | Рубрики: MySQL

29.03.09 22:44Релиз MySQL Sandbox 2.0.98

В предверии большого релиза версии 3.0 вышла очередная версия MySQL Sandbox - 2.0.98. Список изменений тут.
MySQL Sandbox позволяет с легкостью разворачивать различные версии серверов MySQL на одной машине, настраивать репликацию и создавать независимые конфигурации. Идеально подходит для тестирования. Поддерживаются версии MySQL с 3.23 вплоть до 5.1.

Комментариев нет | Рубрики: MySQL, Новости

26.03.09 15:10Консольный клиент MySQL: сверяем результаты запросов

При переписывании запросов, например в целях оптимизации, необходимо убедиться, что новый запрос возвращает такой же результат как и старый. Сделать это можно подсчитав контрольную сумму от возвращаемых данных:

MySQL:
  1. mysql> pager md5sum -
  2. PAGER SET to 'md5sum -'
  3. mysql> SELECT * FROM test;
  4. a09bc56ac9aa0cbcc659c3d566c2c7e4  -
  5. 4096 rows in SET (0.00 sec)

Конечно, такой способ подходит не всегда, так как результаты должны быть идентичны до битов, а другой порядок строк или полей даст другую контрольную сумму. К тому же на Windows системах команда pager не поддерживается.

Комментариев нет | Рубрики: tips, unix

20.03.09 04:19Top 1000 SQL Performance Tips

На http://forge.mysql.com/ опубликовали советы по оптимизации MySQL.
Ниже часть советов на русском.
Читать дальше...

Комментариев нет | Рубрики: MySQL, performance, tips

26.02.09 11:51GROUP BY и ORDER BY NULL

Не все знают, что MySQL по умолчанию упорядочивает результаты запроса по полям в GROUP BY. Это значит, что возможно использование filesort и других затратных операций сортировки.

В данном запросе используется filesort:

MySQL:
  1. world@localhost>EXPLAIN SELECT CountryCode, Name FROM City GROUP BY CountryCode LIMIT 10;
  2. +----+-------------+-------+------+---------------+------+---------+------+------+---------------------------------+
  3. | id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra                           |
  4. +----+-------------+-------+------+---------------+------+---------+------+------+---------------------------------+
  5. 1 | SIMPLE      | City  | ALL  | NULL          | NULL | NULL    | NULL | 4079 | USING temporary; USING filesort |
  6. +----+-------------+-------+------+---------------+------+---------+------+------+---------------------------------+
  7. 1 row in SET (0.00 sec)

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

Комментариев нет | Рубрики: MySQL, performance

25.02.09 13:40How to: Отмена запроса в консольном клиенте mysql

Приходилось ли вам заново соединяться с базой после того как нажали 'CTRL+C' в надежде отменить неправильно набранный запрос? Неудобно? Да. Особенно если вы использовали временные таблицы или переменные, которые потеряются после реконекта.
Читать дальше...

Комментариев нет | Рубрики: tips

25.02.09 12:15PHP 5.3: ext/mysqli - Persistent Connections

Начиная с PHP 5.3 расширение mysqli поддерживает постоянное соединение с базой данной. (К слову, в расширениях mysql и PDO уже давно есть)
Для сброса соединения в исходное, "чистое", состояние mysqli использует функцию mysql_change_user().
Хорошая новость: Читать дальше...

Комментариев нет | Рубрики: MySQL, php, Новости