
Уменьшаем количество запросов к базе данных
Здравствуйте уважаемые читатели блога 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 мая (офигеть, уже май почти! у нас снега больше чем зимой!!!) начну вести на этом блоге одну очень интересную и оригинальную рубрику. Так что не упускайте
Похожие статьи:
-
Руслан | 07.04.2012 в 23:09
Конечно никому!
Я даже догадываюсь на каком… Но не буду рекламировать, я тоже там смотрел
-
Даниил | 08.04.2012 в 5:08
у Борисова вроде было про это)
-
Михаил | 09.04.2012 в 14:31
Подписался у вас на RSS, вы обрели в моем лице головную боль
я закидаю вас вопросами
Ну а если серьезно- хороший у вас и полезный блог, буду стараться почаще сюда заглядывать, так что не тяните с новыми статьями!
-
Олег | 22.04.2012 в 20:43
А делались замеры насколько это реально увеличивает скорость? Или при посещаемости несколько сотен человек в сутки разницы не будет?
-
Руслан | 22.04.2012 в 21:20
Ну у меня показывал скорость загрузки до уменьшения обращений где-то 0.8, а после проделанных манипуляций – 0.68. Нормой считается до 1 секунды вроде…
-
-
igor | 18.06.2012 в 19:00
Надо попробовать, а на новых версиях вордпресса начиная с 3.3. будет работать?
-
Лариса | 23.06.2012 в 15:56
Все сделала по вашей схеме и у меня “сломался” шаблон сайта
-
Елена | 04.12.2015 в 15:30
Нужный материал, я сейчас как раз занимаюсь ускорением блога и воспользуюсь вашими советами, спасибо!
Классно!!! Особенно про пингбэки и 6 строку
Я-то у себя давно это сделал, но делал точно также
Я про 6 строку – не знаю что сделал… Но что-то сделал точно 