Задавайте вопросы, мы ответим
Вы не зашли.
Прочитал статью про размещение таблиц в ОП
http://sqlinfo.ru/articles/info/3.html
очень понравлось - хорошо написано. Но возникло несколько вопросов.
1. Можно ли в ОП записать не Таблицу а полностью базу, не перечисляя все таблицы в данной базе?
2. Если кончится именованный кэш, то будет ли база (таблица) записываться в основной кэш, или после распределения базы(таблицы) в именованный кэш, она в основном более никогда не появится?
2-й вопрос вроде исчез сам по себе. Но для уверенности задал.
Спасибо.
Неактивен
1. такой возможности нет, необходимо перечислить все таблицы
2. если для таблицы используется именованный кэш, то в основном кэше она не кэшируется
У меня есть вопрос: нет ли для именованных кэшей аналога
show status like "key_blocks%";
Неактивен
1. В именованный кэш - нет. Таблица привязывается к именованному кэшу и
работает только с ним. Задать кэш на базу, к сожалению, нельзя. С другой стороны,
обычно именованный кэш Вы создаете для эксклюзивного использования какой-то
таблицей (или группой таблиц), а не всей базой.
2. Собственно, пункт 1 на это тоже отвечает: если в именованном кэше закончится
место, общий кэш использоваться не будет, просто из именованного будут удалены
редко используемые страницы индекса.
Неактивен
Спасибо.
Т.е. в 1-н именованный КЭШ я могу записать несколько таблиц причем из разных баз данных или только из 1-ой?
Это Мне интересно как вохможность. Я для каждой базы буду создавать свой КЭШ.
paulus написал:
2. Собственно, пункт 1 на это тоже отвечает: если в именованном кэше закончится
место, общий кэш использоваться не будет, просто из именованного будут удалены
редко используемые страницы индекса.
Поэтому вопрос сам собою и отпал
Отредактированно HighVoltage (23.08.2007 15:33:07)
Неактивен
Нет, к сожалению, посмотреть состояние именованного кэша нельзя.
Неактивен
HighVoltage написал:
Т.е. в 1-н именованный КЭШ я могу записать несколько таблиц причем из разных баз данных или только из 1-ой?
Это Мне интересно как вохможность. Я для каждой базы буду создавать свой КЭШ.
Можете использовать произвольные таблицы из произвольных баз. Главное, чтобы они были MyISAM.
Неактивен
Спасибо. ответили исчерпывающе.
Неактивен
paulus написал:
Нет, к сожалению, посмотреть состояние именованного кэша нельзя.
Нельзя by-design или эта feature-request существует?
MySQL сами рекомендую использовать несколько кэшей http://dev.mysql.com/doc/refman/5.0/en/ … aches.html
Неактивен
rgbeast написал:
paulus написал:
Нет, к сожалению, посмотреть состояние именованного кэша нельзя.
Нельзя by-design или эта feature-request существует?
MySQL сами рекомендую использовать несколько кэшей http://dev.mysql.com/doc/refman/5.0/en/ … aches.html
by design можно, разумеется. Есть ли FR - не знаю
Неактивен
Нашел feature request: http://bugs.mysql.com/bug.php?id=24939
Workaround:
mysqladmin debug
выводит в структурированные переменные в error log
Неактивен
Возникли ещё несколько вопросов))
Как вывести информацию о кэшах, имеется ввиду сколько и какого размера созданы именованные кэши?
mysql> SHOW VARIABLES LIKE 'key_buffer_size'; +-----------------+----------+ | Variable_name | Value | +-----------------+----------+ | key_buffer_size | 16777216 | +-----------------+----------+ 1 row in set (0.00 sec)
выводит только размер основного кэша и более ничего
И как уничтожить именованный КЭШ?
Пишут что просто присвоить КЭШу, после его инициализации нулевой размер.
http://dev.mysql.com/doc/refman/4.1/en/ … aches.html
Я именно так и делаю, но при просмотре процессов, мускул всё равно ест 300МБ которые я выделил на КЭШ, а потом удалил его.
Может что-то ФЛЭШировать надо?
Неактивен
rgbeast написал:
Нашел feature request: http://bugs.mysql.com/bug.php?id=24939
Workaround:
mysqladmin debug
выводит в структурированные переменные в error log
А что кстати означают все поля. Ну частично они явно понятны а вот остальные немного непонятны =\
Buffer_size: 314572800 Block_size: 1024 Division_limit: 50 Age_limit: 300 blocks used: 70867 not flushed: 0 w_requests: 0 writes: 0 r_requests: 601018 reads: 71706
Age_limit, not flushed, w_requests, writes, r_requests, reads ???
Неактивен
По поводу освобождения памяти - все работает:
$ ps axu | grep 'mysqld ' mysql 5220 0.0 1.6 126868 16984 ? Sl Aug17 0:00 /usr/sbin/mysqld (..cut..) $ mysql root@localhost (none) > SET GLOBAL a.key_buffer_size=300*1024*1024; Query OK, 0 rows affected (0.09 sec) root@localhost (none) > Bye $ ps axu | grep 'mysqld ' mysql 5220 0.0 5.1 434072 52036 ? Sl Aug17 0:00 /usr/sbin/mysqld (..cut..) $ mysql root@localhost (none) > SET GLOBAL a.key_buffer_size=0; Query OK, 0 rows affected (0.03 sec) root@localhost (none) > Bye $ ps axu | grep 'mysqld ' mysql 5220 0.0 1.6 126868 17000 ? Sl Aug17 0:00 /usr/sbin/mysqld (..cut..)
Age_limit - время, которое блок висит в начале горячей цепочки,
not flushed - количество не записанных на диск блоков,
w_requests - количество запросов на изменение индекса,
writes - количество записей страниц индекса на диск,
r_requests - количество запросов на чтение индекс,
reads - количество чтений страниц индекса с диска.
Неактивен