Предисловие… Провел тест: используется pdo-mysql, драйвер php-mysql, php 5.4, 1 коннект к базе, 10 запросов (1 строка, 20 колонок).
Получил следующие результаты:
0.0020718574523926s — создание соединения
0.0010368824005127s — 10 запросов
Подумал, может сделать модуль для php который будет открывать коннкты к базе в нужном количестве (пул) (по колчиеству процессов php-fpm) и держать постоянные соединения? в моём случае вышеуказанного теста — 66% времени уходило на коннект, 33% — на запросы. может сэкономими 66% времени? тест могу показать сюда.
собственно вопрос (и предложение):
1. Никто не видел уже готовых решений для этого?
2. Если никто не видел давай те напишем, я могу писать на C и PHP, делать нагрузочные тесты, но нужна команда, т.к. я один слабоват в C и делать буду долго и не качественно. Предлагаю выпустить модуль под GPLv3 и вести разработку на github.
Есть вообще-то такая штука как persistent connection (Из перевода понятно что это «постоянное соединение»). Оно не рвется от сессии к сессии и позволяет нешуточно разгрузить базу данных (дергать ее будут меньше по каждому чиху).
Правда не без проблем это… так что думать надо перед тем как использовать. Для справки — прекрасно все и с PDO и с mysqlii.
Поидее на каждый процесс php-fpm будет свое соединение с базой. Я если честно деталей не помню. Насколько я помню все упирается в настройки самой базы данных (максимальное количество одновременных соединений)
В общем обратитесь к документации, там все довольно неплохо разжовано.