Ремонт MySQL таблиц с помощью myisamchk
Полное описание здесь.
Пути прописаны для Debian Like систем
*где 512M = 1/4 Доступной ОЗУ
Пути прописаны для Debian Like систем
# /etc/init.d/mysql stop # cd /var/lib/mysql/название-базы/ # myisamchk -e -s --update-state *.MYI # myisamchk -r -q таблица # myisamchk -r --sort_buffer_size=512M --key_buffer_size=512M таблица
*где 512M = 1/4 Доступной ОЗУ
SELECT COUNT и индексы
Сегодня работал с большой таблицей. И столкнулся с очень интересной ситуацией, а именно непонятной мне скоростью выборки..
Простой класс для работы с MySQL
Часто требуется, написать какой-нибудь простой скрипт, в котором требуется поддержка БД. И я заметил, что частенько пишу небольшие обертки, для более удобной работы.. под катом одна из них..
Поиск неуникальных полей
Вот такой запрос позволяет выбрать поля, у которых совпадают keyword_id и таких полей больше 1
Полезно когда нужно сделать какое-то поле уникальным, но в нем уже есть не уникальные данные, которые нужно удалить. Этим запросом выбираем поля у которых есть дубли, и дальше уже обрабатываем именно их.
SELECT keyword_id FROM `table` GROUP BY keyword_id HAVING COUNT( keyword_id )>1
MySQL disabled index
Сегодня столкнулся с проблемой, что после того как дамп не до конца догрузился (MySQL server has gone away), я получил таблицу в которой индексы были отключены..
MySQL ENUM ORDER BY
Редко использую ENUM поля в MySQL, но понадобилось мне сделать сортировку по этому полю. А как же сортируются такие поля по ORDER BY? Все просто, поля сортируются в порядке их добавления в БД.
Т.е. если есть список значений `field` = A, Z, D, E
То ORDER BY `field` даст список A, Z, D, E
А ORDER BY `field` DESC даст список E, D, Z, A
Сортировки по алфавиту не будет! Потому что сортировка идет по индексу ENUM.
Отсортировать по алфавиту, можно так: ORDER BY CAST(`field` AS CHAR)
Как указать свой порядок значений, что-то вроде:
ORDER BY `field` WITH_SORT_ORDER "New York", "Copenhagen", "London"
я, пока что, не нашел
Т.е. если есть список значений `field` = A, Z, D, E
То ORDER BY `field` даст список A, Z, D, E
А ORDER BY `field` DESC даст список E, D, Z, A
Сортировки по алфавиту не будет! Потому что сортировка идет по индексу ENUM.
Отсортировать по алфавиту, можно так: ORDER BY CAST(`field` AS CHAR)
Как указать свой порядок значений, что-то вроде:
ORDER BY `field` WITH_SORT_ORDER "New York", "Copenhagen", "London"
я, пока что, не нашел
MySQL как быстро скопировать таблицу
Понадобилось мне разбить большую таблицу на много маленьких. Когда данных много работать с ними не удобно. Но я отыскал в мануале MySQL как это можно сделать, быстро и всего в пару комманд..
MySQL экспорт только выбранных значений
Понадобилось мне сделать дамп, таблицы. Но не всех значений, а только части. Оказалось все просто..
MySQL сброс привелегий root
Понадобилось мне сбросить пароль root-а в MySQL. К счастью, у меня был руль от сервера (доступ root по ssh)..
MySQL - ошибка Checking for corrupt, not cleanly closed and upgrade needing tables
Получил такое сообщение:
Как пишут в инете, данное сообщение не является ошибкой..
Checking for corrupt, not cleanly closed and upgrade needing tables
при старте MySQL в Debian:#/etc/init.d/mysql start
Как пишут в инете, данное сообщение не является ошибкой..




Просмотров: 47