-
Notifications
You must be signed in to change notification settings - Fork 24
Шпоргалка по MySQL
rsajob edited this page Nov 15, 2012
·
2 revisions
Вот мой вариант, того, что действительно полезно:
- Если делаем mysqldump то на все время пока будет проходить дамп, у нас залочится запись в таблицы. При больших объемах гораздо правильнее снимать дампы со slave или использвать lvm снапшот.
- Чтобы правильно получить год и неделю, надо групировать по date_format(date,%x-%v). При использовании group by year(date),week(date,3) получаем, что 29-31 декабря 2008 считается как 2008,1 неделя. Все логично, но следует помнить.
- Статистика по табличкам, рекомендую сохранить как view.
SELECT table_name,engine,table_rows,
round(DATA_LENGTH/1024/1024,2) AS data_mb,
round(INDEX_LENGTH/1024/1024,2) AS index_mb,
round((DATA_LENGTH + INDEX_LENGTH)/1024/1024,2) AS total_mb
FROM information_schema.tables where TABLE_SCHEMA = database();
- Храним ip как UNSIGNED INTEGER для преобразования в строку используем inet_aton/inet_ntoa
- Редкоиспользуемые данные выносим в отдельную таблицу с egnine=ARCHIVE
- Дампы собираем сразу с gzip. mysqldump db |gzip > dump.gz. Распаковываем zcat dump.gz |mysql db
- Правильно используем mysql из bash скрипта.
-N убирает название колонок таблицы
-B убирает псевдографику, используется таб как разделитель.
- Забываем слово RAID5/RAID6. Для БД актуально только RAID10/RAID1
- Если нужно уникальный индекс по большому текстовому полю, делаем еще одно с md5sum(textdata) и строим уникальный индекс по нему.
Ещё на хабре статься MySQL шпаргалки