- Не MyISAM няма кеш за данни с общо предназначение. Това е документирано в описанието на "key_buffer_size" от официалната документация
:
This is because MySQL relies on the operating system to perform file system caching for data reads, so you must leave some room for the file system cache.
Съвременните операционни системи, особено Linux, са склонни да имат много интелигентни подсистеми за виртуална памет, които ще поддържат често достъпни файлове в кеша на страниците, така че I/O на диска се поддържа на минимум, когато работният комплект се побира в наличната памет.
- За да отговоря на втория ви въпрос:никога.
Важно е да не попадате в „оразмеряване на буфера“ и за различните myisam променливи като read_buffer_size, read_rnd_buffer_size, sort_buffer_size, join_buffer_size и т.н., тъй като някои са динамично разпределени, така че по-голямото не винаги означава по-бързо - а понякога дори може да бъде по-бавно - вижте тази публикация на mysqlperformanceblog за много интересен случай.
Ако сте на 5.1 на платформа posix, може да искате да сравните myisam_use_mmap при вашето работно натоварване, би трябвало да помогне на случаите на силно раздори чрез намаляване на количеството извиквания на malloc().