Лучше вынесите часто меняемые параметры в отдельную таблицу. Остальные параметры, которые не меняются, или меняются редко, можно смело сделать хеш. Но хеш Вам не даст "схожие " телефоны, только идентичные. Чтобы получать схожие - нужно делать уже некий скоринг по свойствам, и сортировать по этому скорингу
Не путайте человека, у него не нога болит, а зуб. Щас насоветуете :)
У вас в конфиге не прописаны логины-пароли, либо не в том конфиге, либо не в том месте конфига, либо конфиг не подключен, либо etc...
Делают все так, как умеют :)
Отвечу на вопрос про БД - приложения НЕ подключается к БД напрямую, вместо этого поднимается REST/JSON-RPC/etc сервис, который обслуживает весь процесс работы с данными и/или логикой.
Через HTTP-теги E-tag & last-modify. Если все корректно настроить, то клиент не будет выкачивать тело, если данные в кэши будут валидны.
Но это вас не избавит от необходимости генерировать саму статику на каждый запрос.
Если речь про кэширование данных перед отдачей, то это другая тема - тут вам в помощь memcache и иже с ними.