У меня была база данных с десятками тысяч таблиц. В результате mysql information_schema стал чрезвычайно медленным, что повлияло на общую производительность, воздействуя на такие вещи, как открытое и закрытое время для таблиц.Как «очистить» mysql information_schema?
Поскольку все таблицы являются Myisam и имеют соответствующие файлы в каталоге данных mysql, я просто переместил кучу файлов таблиц в другую базу данных.
Это не работает без проблем, однако, производительность information_schema в исходной базе данных не улучшает много:
mysql> select count(*) from information_schema.TABLES where table_schema='database_1';
+----------+
| count(*) |
+----------+
| 17374 |
+----------+
1 row in set (1 min 28.68 sec)
по сравнению с новой базой данных:
mysql> select count(*) from information_schema.TABLES where table_schema='database_2';
+----------+
| count(*) |
+----------+
| 16127 |
+----------+
1 row in set (2.15 sec)
Кажется, некоторые «вещи «должно быть, осталось в информационной_схеме.
Кто-нибудь знает, что вызывает это, и если что-то можно сделать по этому поводу?
'16.000 +' таблицы ?? Что-то действительно, действительно, действительно неправильно. Для каждой таблицы после .. ну, пара десятков в вашей базе данных - есть котенок, который умирает где-то –
Я ожидал такого комментария :) Я знаю, что много таблиц, но поверьте мне, у меня есть причины для этого. Проблема в том, что нет никакой причины, по которой информационная_схема на первой БД должна быть настолько медленнее, чем вторая дБ. – Michael