Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Перечисления
Терпеть не могу innodb
Новичков на более чем средних нагрузках ждут сюрпризы.
2. Из пхп: делаю INSERT, беру ID, делаю SELECT по ID. Пусто! А ID вернул. Правда опять же не всегда и не со всеми.
Треды виснут по неизвестной причине.
Из пхп: делаю INSERT, беру ID, делаю SELECT по ID. Пусто!
Я от такой квантовой неопределенности инны чес говоря офигел
If you are using MySQL versions 4.1.3 or later it is strongly recommended that you use the mysqli extension instead..
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();4) Храним ip как UNSIGNED INTEGER для преобразования в строку используем inet_aton/inet_ntoa
6) Дампы собираем сразу с gzip. mysqldump db |gzip > dump.gz. Распаковываем zcat dump.gz |mysql db
Полезно под каждую базу на боевом сервере создавать своего пользователя
В большинстве случаев лучше использовать движок InnoDB
VARCHAR ограничена 255 символами, поэтому нет никакого смысла указывать VARCHAR(300)
Сравнивая типы данных DATETIME и TIMESTAMP, не забывайте делать преобразование типов, например:
SELECT * FROM table WHERE `datetime` = DATE(`timestamp`)на тех мускулях, где я работал — включение любой процедуры или преобразования в запрос значительно, на пару порядков, его замедляло. В узких местах такие вещи делать нельзя. Лечить денормализацией, «ночью по крону преобразовывать вручную к одному виду», и т.д.Заливаем архив бекапа в базу
gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
Не ставьте для типа INTEGER свойство UNSIGNED, если вы не знаете что делайте. Из коробки php не поддерживает числа такого большого размера на 32-битных системах.
На 32-битных системах практически нет смысла ставить для типа INTEGER свойство UNSIGNED, так как такие большие числа в php не поддерживаются.
На 64-битных системах, php поддерживает большие числа, вплоть до MySQL BIGINT со знаком.
# Файл `credentials.cnf` формата как `/etc/mysql/debian.cnf` с одной секцией [client].
# Выставить для файла минимально необходимые права для чтения.
[client]
host = localhost
user = username
password = password
# socket = /var/run/mysqld/mysqld.sock
mysqldump --defaults-extra-file='/path/to/credentials.cnf' dbname
TEXT ограничен только 64 килобитами
mysqldump -u USER -pPASSWORD DATABASE -hSERVERNAME > /path/to/file/dump.sql
По умолчанию без указания -h будет подставлен localhost
Добавьте — правда не хватает!
MySQL шпаргалки