Главная » Wordpress » Уменьшаем количество запросов к базе данных
Уменьшаем запросы к базе данных

Уменьшаем количество запросов к базе данных

Здравствуйте уважаемые читатели блога history-of-blog.ru. Сегодня хочется немного рассказать Вам о том, как можно уменьшить количество запросов к базе данных, тем самым ускорив блог. Для этого нужно совсем немного покопаться в коде и заменить обращения к БД на прямые ссылки.Уменьшаем запросы к базе данных

Дело в том, что при загрузке страницы некоторые данные берутся из базы данных и это правильно. Но некоторые стандартные запросы можно убрать, заменив их на прямые ссылки. По сути мы убираем посредника – нашу базу данных.

Безопасно ли изменять запросы к БД на код?

Можно привести простой пример: Вы и ваш друг стоите рядом со столом на котором лежит листок с написанным на ним числом. Вопрос: как можно узнать это число? Для нас тут интересно два варианта:

  • Можно самому посмотреть на листок и узнать число.
  • Можно попросить друга посмотреть на листок и сказать какое число там написано.

В первом случае выполняется одно действие, во втором два. Какой ответ будет рациональней? Правильно, первый. Точность узнать верное число и в том и в другом случае равна 100% (Если учитывать что друг надежный).

Теперь перенесем эту аналогию на пример сайта:

  • Вы – это пользователь загружающий страницу.
  • Число – это страница, которую Вы грузите и хотите увидеть.
  • Ваш друг – эта База Данных блога WordPress.

Думаю понятно :)

Изменяем код обращений к базе данных.

Мы будем редактировать файл Header.php

Сохраните его резервную копию к себе на компьютер!

Нас интересует самое начало файла, а именно те строки, которые не видны непосредственно на сайте. Находятся они до открывающегося тега <body>, а именно внутри <head></head>.

Интересные нам строчки начинаются с <link rel= … :

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />

Конечно не факт, что все эти строчки будут у Вас, их может быть больше или меньше. Каждая строка – это 1 запрос в базу данных.

  • 1 строка: браузер обращается к БД и спрашивает откуда брать стили для сайта, та любезно указывает ему на файл style.css
  • 2 строка: а где мне взять rss ленту в формате RSS 2.0?
  • 3 строка: в формате RSS .92?
  • 4 строка: в формате Atom 0.3?
  • 5 строка: что-то про пингбэки, которые на фиг не нужны.

В общем после всех манипуляций я изменил все строчки + 1 добавил, и вместо кода, который представлен выше получил следующий:


<link rel="shortcut icon" type="image/ico" href="http://history-of-blog.ru/favicon.ico" />
<link rel="stylesheet" href="http://history-of-blog.ru/wp-content/themes/styler/style.css" type="text/css" media="screen" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://feeds.feedburner.com/history-of-blog" />
<link rel="alternate" type="text/xml" title="RSS .92" href="http://feeds.feedburner.com/history-of-blog" />
<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="http://feeds.feedburner.com/history-of-blog" />
<link rel="pingback" href="http://history-of-blog.ru/xmlrpc.php" />

Наша задача переписать только ссылки (href). Теперь подробнее:

  • 1 строка: если Вы посмотрите на верхний код, то увидите что ее сначала не было (у Вас она может быть – различайте их по значению rel). Эта строка ответственна за вывод фавиконки. Запрос к БД можно заменить на прямую ссылку к фавикону, что я и сделал: http://history-of-blog.ru/favicon.ico
  • 2 строка: указал прямой путь к файлу стилей style.css.
  • 3-5 строки: здесь можно указать адрес подобный этому http://history-of-blog.ru/feed, но согласитесь куда лучше здесь будет смотреться адрес http://feeds.feedburner.com/history-of-blog
  • 6 строка: не знаю что сделал.

При замене кодов помните: поменяйте все адреса на свои, иначе Вы будете ссылаться на мой блог и ему будет угрожать увеличение пузомерок! Так что очень прошу быть внимательными!

Спасибо что остаетесь со мной!

1 мая (офигеть, уже май почти! у нас снега больше чем зимой!!!) начну вести на этом блоге одну очень интересную и оригинальную рубрику. Так что не упускайте :)

Комментировать через ВКонтакте:
Отзывов к посту "Уменьшаем количество запросов к базе данных" уже 19:
  • Руслан | 07.04.2012 в 23:05

    Классно!!! Особенно про пингбэки и 6 строку :x Я-то у себя давно это сделал, но делал точно также :x Я про 6 строку – не знаю что сделал… Но что-то сделал точно :x

    • admin | 07.04.2012 в 23:07

      Если честно про строчку с пингбеками я подсмотрел на одном известном сайте (посещаемостью более 10к человек), ток никому не говори :roll:

  • Руслан | 07.04.2012 в 23:09

    :x Конечно никому! :roll: Я даже догадываюсь на каком… Но не буду рекламировать, я тоже там смотрел :roll:

  • Даниил | 08.04.2012 в 5:08

    у Борисова вроде было про это)

    • admin | 08.04.2012 в 10:05

      Я думаю это известно любому кто разбирается в коде ;) не стоит сводить все к одному знаменателю. Если человек узнал информацию от кого-то – это не значит что это единственный ее источник

  • Михаил | 09.04.2012 в 14:31

    Подписался у вас на RSS, вы обрели в моем лице головную боль ;-) я закидаю вас вопросами :smile:

    Ну а если серьезно- хороший у вас и полезный блог, буду стараться почаще сюда заглядывать, так что не тяните с новыми статьями! :idea:

    • admin | 09.04.2012 в 14:43

      Пишу как могу – почти каждый день пока… А на счет головной боли я не переживаю, помогу чем, как говорится, смогу

  • Олег | 22.04.2012 в 20:43

    А делались замеры насколько это реально увеличивает скорость? Или при посещаемости несколько сотен человек в сутки разницы не будет?

    • Руслан | 22.04.2012 в 21:20

      Ну у меня показывал скорость загрузки до уменьшения обращений где-то 0.8, а после проделанных манипуляций – 0.68. Нормой считается до 1 секунды вроде…

    • admin | 22.04.2012 в 21:35

      Разница будет.
      И это не только увеличит скорость загрузки страницы,но и уменьшет общую нагрузку, ведь обращений к базе данных будет меньше

      • Олег | 23.04.2012 в 10:40

        Спасибо за ответы. Буду у себя тоже делать.

  • igor | 18.06.2012 в 19:00

    Надо попробовать, а на новых версиях вордпресса начиная с 3.3. будет работать?

  • Лариса | 23.06.2012 в 15:56

    Все сделала по вашей схеме и у меня “сломался” шаблон сайта :cry:

    • admin | 23.06.2012 в 16:40

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

  • Денис | 19.09.2014 в 2:06

    Да, было у меня такое добро, нагрузка колоссальная :|

  • Елена | 04.12.2015 в 15:30

    Нужный материал, я сейчас как раз занимаюсь ускорением блога и воспользуюсь вашими советами, спасибо!

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: