Например, для всех таблиц MyISAM в БД:
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'db_name' AND ENGINE = 'MyISAM';
затем с полученным списком:
ALTER TABLE `table_name` ENGINE=InnoDB;
Например, для всех таблиц MyISAM в БД:
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'db_name' AND ENGINE = 'MyISAM';
затем с полученным списком:
ALTER TABLE `table_name` ENGINE=InnoDB;
Конфигурация в /etc/my.cnf.d/server.cnf
:
[mariadb] slow_query_log slow_query_log_file=/var/log/mariadb/mariadb-slow.log long_query_time=1.0
Больше информации:
https://mariadb.com/kb/en/slow-query-log/
https://mariadb.com/kb/en/slow-query-log-overview/
Лог всех запросов: в ту же секцию добавить
general_log general_log_file=/var/log/mariadb/mariadb-query.log
shell скрипт для автоматического изменения кодировки таблиц и столбцов с utf8 на utf8mb4
#!/bin/bash # mycollate.sh <database> [<charset> <collation>] # changes MySQL/MariaDB charset and collation for one database - all tables and # all columns in all tables DB="$1" CHARSET="$2" COLL="$3" AUTH="-uuser -ppass" [ -n "$DB" ] || exit 1 [ -n "$CHARSET" ] || CHARSET="utf8mb4" [ -n "$COLL" ] || COLL="utf8mb4_general_ci" echo $DB echo "ALTER DATABASE \`$DB\` CHARACTER SET $CHARSET COLLATE $COLL;" | mysql $AUTH echo "USE \`$DB\`; SHOW TABLES;" | mysql -s $AUTH | ( while read TABLE; do echo $DB.$TABLE echo "ALTER TABLE \`$TABLE\` CONVERT TO CHARACTER SET $CHARSET COLLATE $COLL;" | mysql $AUTH $DB done )
https://dba.stackexchange.com/questions/8239/how-to-easily-convert-utf8-tables-to-utf8mb4-in-mysql-5-5
Когда текст обрезается после первого смайла (эмодзи).
Использовать кодировку utf8mb4_general_ci
вместо utf8_general_ci
Найти в таблице catalog
записи с повторяющимся uid
.
Показать все:
SELECT * FROM `catalog` WHERE `uid` IN (SELECT `uid` FROM `catalog` GROUP BY `uid` HAVING COUNT(`uid`)>1) ORDER BY `uid` ASC, `id` DESC;
Показать только уникальные:
SELECT * FROM `catalog` WHERE `uid` IN (SELECT `uid` FROM `catalog` GROUP BY `uid` HAVING COUNT(`uid`)>1) GROUP BY `uid` ORDER BY `uid` ASC, `id` DESC;
Заменяем /temp/
на /
в parent_chpu
в таблице seo
в строках, которые начинаются с /temp/
UPDATE `seo` SET `parent_chpu` = REPLACE(`parent_chpu`, '/temp/', '/') WHERE `parent_chpu` LIKE '/temp/%' OR `parent_chpu`='/temp/';
Заменяем 125/
на «ничего» в path
в таблице mod_shop
в строках, которые начинаются с 125/
UPDATE `mod_shop` SET `path` = REPLACE(`path`, '125/', '') WHERE `path` LIKE '125/%';
Добавляем в parent_chpu
в таблице seo
в начало каждой строки /
UPDATE `seo` SET `parent_chpu` = CONCAT('/', `parent_chpu`);