какая у тебя ошибка выдается, если отвалилось соединение с БД?
а если не хватает ОЗУ?
В логах PHP?
На самой странице, где выполняется код?
У меня такие ошибки никогда не выводились. Я догадывался о них интуитивно. Как раз таки пробуя менять лимиты.
все они написаны в мануале. Но там очень много чего написано, можно случайно упустить какую-либо директиву. И потом долго гадать, почему правильно написанный скрипт не работает.
Классические СУБД предпочитают сами управлять буфером, т.к. только они знают приоритеты. Выдавленная из буфера страница с данными может и не понадобится, а вот страница с индексом уже критично. ОС на это пофиг, ей надо - она займет, не разбираясь.
И справедливости ради, это актуально для данных так или иначе помещающихся в оперативку, если же данных с которыми работаем в разы больше, то читаем диск, как это делают колоночные СУБД.
Т.е. под каждую задачу свой инструмент.