Интернет-ресурсы, которые могут быть доступна лицам, и как таковая, как правило, рассчитывать на сравнительно медленными темпами пользователю избежать узких мест деятельности. Этот метод, не ни с API, потому что они будут потребляются с другими серверами высокоскоростных соединений, зачастую предназначены только с их собственной деятельности в виду (они не будут кэша ваших ответах для вас, и вместо этого сделать точно такой же запрос раз). Проектирование API с вашей эффективности в виду, может помочь держать сервер быстрый, даже когда многочисленные просьбы ведется, и будет способствовать тому, что будущие модернизации оборудования может достичь желаемых задач.
| Примечание |
Многие веб-сайты, либо направленные или плохо, по-видимому, отсутствие любого рода дизайн силы. Я видел сайт, который требуется 10 запросами к базам данных, чтобы начать, а затем дополнительный запрос по каждому пункту в их базе данных. С более чем 40 пунктов, в их базу данных, насчитывалось около 50 запросов время каждый раз, когда индекс страницы загружается. Этот метод был ужасающе, не по сайту получают сравнительно мало обращений. Она не длилась минут, если он потребляется автоматически, и я сомневаюсь, он продолжался более нескольких секунд под Slashdot эффект. Все эти базы данных запросов в основном бессмысленно, а; Фирмы кадастра модификация медленно, так статической страницы в один раз в неделю из той же сценарий будет просто функционирует, а для конечных пользователей, но и были бы на несколько порядков быстрее . |
Часто так веб-сайтов и ИСП запросить данные из базы данных каждый раз запрос сделан, хотя данные, используемые для заполнения ответ изменения редко. Это, в сочетании с базой данных методов нормализации преподается с начала времени, значит, что каждый из этих просьб, скорее всего сделать по крайней мере один вопрос присоединения результаты множества таблиц, возможно, несколько запросов. Если данные не меняется, что часто рассмотреть кэширования ответ.
Например, принимать вымышленного Bob's видео сайт. Каждый раз, когда кто-то либо мнения подробную информацию о фильме на своем сайте или просит ее через его API, то сервер проходит три запросы: один запрос, который считает, что фильм полное название, участок линии, и рейтинг, другой вопрос, что ведет присоединились запрос получить подробную информацию о каждом из членов бросил, а окончательный запрос, чтобы определить, в этом фильме аренду статуса. Это гигантская разбазаривание ресурсов; Раз фильм освобожден, единственный ответ, что изменится его статус аренду. Тем не менее, всякий раз, когда страница загружается, данные предлагается вновь из базы данных. Было бы гораздо более целесообразно использовать либо статические страницы для выпущенных фильмов (пополнение аренду состоянии динамически), или, по крайней мере кэш всех в этом фильме информации и получения аренды статус динамично.
| Примечание | Вы, наверное, заметили, что, поскольку, вероятно, кэш попадает в базу данных, я действительно только сократил запрос рассчитывать с 3 на 2. Она выглядит не так, как резкое повышение, но она есть. В присоединились запроса поиске подробной информации по поданных членами происходит на порядок медленнее, чем для поиска на основе первичного ключа, поэтому большая экономия существует. Вы также можете кэш фильма данных в форме, в непосредственной близости от ее окончательного веб-формы, экономия на всем обработки обычно необходимо для перехода из базы данных сайта. Вам понадобится два тайники в этом примере, один на сайте и по API. |
Хотя кэширование данных - это отличный способ сокращения числа запросов вы используете, это не всегда целесообразно. Просто убедитесь, что вы получите максимум из каждого запроса запуске. Много раз дублировать данные предлагается при обработке одного запроса; Это часто происходит, когда различные функции необходимо те же данные, но они не называют друг друга, чтобы они не разделяют их результатов. Рассмотрим либо переработку вашего скрипта получить все необходимые данные сам, а затем передать покинуть данных функций, которые в ней нуждаются, или создать слой абстракции с объектом, что обеспечивает получение информации из базы данных только тогда, когда требуется.
Как только вы используете вашу базу данных запросов на полную, начать работу по повышению скорости вопросы сами. Никогда начала запросов SELECT * FROM запрос только областях вы действительно нуждается. Кроме того, как изучить запросы и базе данных. Попробуйте обеспечить, чтобы поля базы вы свой выбор либо на первичные ключи или, по крайней мере проиндексирована сервера баз данных.
Рассмотрим случай с видео Store API, который позволяет пользователям запрашивать информацию о фильмах. С небольшим изменением дизайна (подвижное состояние в аренду собственный запрос, а не с каждого запроса), много новых кэширования возможности. Поскольку ответа не меняется независимо от того, кто просит ее, прокси-сервер может использоваться стороне сервера обрабатывать ответ (это гораздо проще, с ОТДЫХ API, чем с SOAP). Настройка соответствующие заголовки кэш жизни (24 часов фильмов, и 30 минут на аренду статус) позволит API для shrug покинуть большую часть своей работы на прокси-сервер.
Есть несколько ускорителей доступны PHP, которая может оказать резкое воздействие на скорость вашего скриптов. Каждый раз, когда PHP скрипт выполняется, то анализируются и обобщаются в байт код PHP в Скриптовый движок. Потому что, вообще говоря, этот сценарий не изменился между казни, это огромная трата времени. PHP ускорителей кэширование байт кода версии скриптов, и исполнить, что копия (которая учитывает любые изменения в оригинальный сценарий). Это экономит разбора и компиляции шаги каждый раз скрипт выполняется из-за ваших будет называться с большой частотой, и изменены редко это может быть существенной экономии.
Важно понимать, как PHP ускорителей работы избежать неоправданных надежд на их результаты. Рассмотрим синтаксический анализ и компиляцию времени для скрипта в виде фиксированной стоимости - каждый раз сценарий обращались, независимо от скорости других ресурсов (баз данных, например) и сколько обработки готового сценария требует, эти расходы должны быть оплачены. Кэширование в байт код копию сценария только о том, что экономит расходы; Он не будет скорости вашей базы данных запросов или других CPU - процессы.
Один из наиболее распространенных PHP ускорителей от Zend, действенно название Zend PHP [4 / 5] Accelerator. Я нашел его легко установить и относительно удовлетворены ее результатами. После повышен до PHP5 вскоре после его освобождения, я не смог проверить другие ускорители, которые после получения. Одна из других ускорителей мне удалось попробовать sigfault'd вызовом Apache процесс по ряду моих сценариев, поэтому убедитесь, что вы проведете какой ускоритель Вы используете широко до ввода его в систему производства.
Online: 539 users browsing the articles directory
|
|