Получите данные MySQL без нагрузки на сервер - PullRequest
3 голосов
/ 27 февраля 2010

Мне интересно, как лучше всего предотвратить нагрузку на мой сервер, когда я хочу получить много данных с помощью PHP.

Преобразовать все мои данные в лист XML? Использовать кеширование?

Данные поступают из разных баз данных и из разных таблиц.

Есть идеи?

Заранее спасибо

Ответы [ 3 ]

4 голосов
/ 27 февраля 2010
  1. Прежде чем что-то делать, напрягайте его до тех пор, пока оно не сломается.

  2. Когда он сломается, профилируйте его, чтобы определить точку разрыва, и работайте над этим.

  3. Повторяйте с пункта 1 до тех пор, пока пределы производительности не станут приемлемыми.

1 голос
/ 28 февраля 2010

Ни то, ни другое.

И то, и другое добавляет значительную сложность вашему PHP-коду.Преобразование в XML не имеет абсолютно никакой добавленной стоимости - на самом деле это не только дополнительная стоимость кодирования в XML, но и затраты на декодирование.Что касается фактического хранения ваших данных в XML - это просто смешно.

СУБД MySQL обеспечивает очень эффективное кэширование результатов.Базовая ОС должна обеспечивать очень хорошее кэширование ввода / вывода.Вы ничего не получите, добавив свой собственный уровень кэширования, за исключением более медленного кода и более горячего процессора.

Если у вас есть база данных типа OLTP и вы регулярно собираете большие наборы данных, то вы можете подумать о предварительной консолидацииили внедряя схему OLAP в вашей базе данных.

OTOH, если вы просто хотите повысить производительность своей системы, тогда посмотрите куда-нибудь, особенно на вашу схему данных.

C.

0 голосов
/ 27 февраля 2010

Я думаю, что кэширование будет правильным, за исключением случаев, когда эти данные меняются не очень часто:)

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