Как оптимизировать веб-приложения CakePHP и SQL? - PullRequest
2 голосов
/ 06 мая 2011

В последнее время я планирую оптимизировать свое веб-приложение, написанное на платформе cakephp 1.2.0 и MySql db. Я немного оптимизировал его с помощью memcache и удалил все модели из массива $ using и начал использовать $ this-> loadModel ('SomeModel'); После этого моя загрузка страницы уменьшилась на 200%, но я знаю, что есть больше возможностей для ее оптимизации, и буду благодарен, если кто-нибудь1 может дать мне некоторые советы, советы или предложения по этому поводу. Спасибо

Ответы [ 2 ]

5 голосов
/ 06 мая 2011

Несколько советов:

  1. Служит статическим контентом независимо от торта из домена без файлов cookie.

  2. Старайтесь не начинать сеанс, когда в этом нет необходимости.

  3. Избегайте загрузки помощников и компонентов, когда они не используются.

  4. Сократите все ваши JS и CSS и доставьте их из одного файла.

  5. Используйте кэширование всегда, когда это возможно (элементы, запросы, представления).

  6. Используйте requestAction с осторожностью и всегда с кешем.

  7. Рефакторинг вашего кода на более мелкие части, меньшие контроллеры, меньшие представления. В результате точная настройка вышеупомянутого будет возможна в других местах.

  8. Проверьте свой код и пропустите все повторяющиеся вычисления / запросы, которые можно выполнить один раз и использовать несколько раз вместо этого (например, если вы используете локализованный формат даты в представлениях, отформатируйте его один раз и используйте его повторно вместо применяя форматирование несколько раз к отметке времени)

  9. Извлеките журнал sql вашего Cake, чтобы увидеть, какие запросы на самом деле выполняются и сколько времени они занимают. Оптимизируйте стратегию запросов (одно большое объединение против множества запросов) и структуру данных (таблицы оптимального объединения, сравнивайте только по индексированным полям, избегайте использования какой-либо функции или преобразования в запросах). Удалите все ненужные поля и отношения (например, содержит).

0 голосов
/ 27 июня 2012

Используйте 'recursive' => -1 в методе поиска, если вам нужны только данные текущей модели без связанных моделей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...