Июн 15
Понадобилось восстановить бэкап mysql размером примерно в гигабайт.
Всякие phpMyAdmin даже сжатый файл кушать отакзываются – ограничение по размеру, а доступа к настройкам нет.
Нашёл хороший способ – в командной строке
mysql
mysql>use database <>;
mysql>source path/to/backup_file.sql;
Очень быстро и хорошо)
http://forums.mysql.com/read.php?104,145923,148081#msg-148081
Теги: mysql
Май 29
Чтобы работать напрямую с MySQL-базой из PhpStorm:
Установить плагин Database Navigator (перезапустить IDE – появится пункт DB Navigator).
Скачать jdbc-драйвер (http://www.mysql.com/downloads/connector/j/)
DB Navigator → Settings → add connection:
driver library – …mysql-connector-java-5.1.16-bin.jar
url – jdbc:mysql://127.0.0.1:3306
user – root
Теги: IDE • mysql • phpstorm
Май 07
Вкратце: если в условии WHERE разные столбцы соединяются условием OR, то лучше иметь отдельные индексы по этим полям, во всех остальных случаях нужно использовать многоколоночный индекс (данные по MySQL 5.2.4).
Подробнее.
Теги: index • mysql
Ноя 11
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html
Не знал про COALESCE – функцию, которая возвращает первое ненулевое значение из переданных параметров.
Теги: COALESCE • comparison • mysql • sql • сравнение
Окт 31
Перечислю основное.
Версия 5.0 (http://dev.mysql.com/doc/refman/5.0/en/mysql-nutshell.html):
- Курсоры
- Хранимые функции
- Триггеры
- VIEW
- INFORMATION_SCHEMA (база о базах данных сервера)
- Тип данных VARCHAR
Версия 5.1 (http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html):
- Оптимизация оптимизатора (особенно GROUP BY)
- InnoDB plugin
- Partitioning
- Row based replication
Версия 5.4 (http://dev.mysql.com/doc/refman/5.4/en/mysql-nutshell.html):
- Улучшена масштабируемость
- Изменение подсистемы ввода-вывода InnoDB
Теги: mysql
Окт 31
Top 1000 SQL Performance Tips
Continue reading »
Теги: index • mysql
Окт 31
По этому адресу – список полезных инструментов для тюнинга mySQL:
http://dev.mysql.com/doc/refman/5.1/en/mysql-nutshell.html
Теги: mysql • ссылка
Окт 26
Ссылка на статью.
Для чего они нужны:
- чтобы проверить и предотвратить вставку некорректных данных
- чтобы изменить или отменить процедуры INSERT, UPDATE, DELETE
- чтобы отслеживать изменения данных внутри сесии.
Триггер – это фактически хранимая процедура, выполняющаяся при определённом событии, относящемся к определённым данным (хотя и с некоторыми нюансами).
Синтаксис:
CREATE TRIGGER <trigger name>
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON <table name>
FOR EACH ROW
<triggered SQL statement>
При этом доступны специфичные пространства имён OLD и NEW в зависимости от контекста (INSERT, UPDATE, DELETE)
CREATE TRIGGER t21_au
BEFORE UPDATE ON t22
FOR EACH ROW
BEGIN
SET @old = OLD . s1;
SET @new = NEW.s1;
END;//
Пример использования для предотвращения вставки некорректных данных
CREATE TABLE t25
(s1 INT, s2 CHAR(5),
PRIMARY KEY (s1))
ENGINE=INNODB//
CREATE TRIGGER t25_bi
BEFORE INSERT ON t25
FOR EACH ROW
IF LEFT(NEW.s2,1)<>'A' THEN SET NEW.s1=0; END IF;//
CREATE TRIGGER t25_bu
BEFORE UPDATE ON t25
FOR EACH ROW
IF LEFT(NEW.s2,1)<>'A' THEN SET NEW.s1=0; END IF;//
INSERT INTO t25 VALUES (0,'a') /* priming the pump */ //
INSERT INTO t25 VALUES (5,'b') /* gets error '23000' */ //
Теги: mysql • mysql 5