Как снизить нагрузку на сервер изменив скрипт?

123
D
На сайте с 07.11.2000
Offline
229
#11
svv:
Завтра обязательно сравню

Я использовал эту идею лет 12 назад. По сравнению с чтением с текстовых файлов, выигрыш в скорости был очень заметен.

На первом этапе можно формировать каждый элемент массива отдельно:

$ID[12] = 12;

$NAME[12] = "Имя";

Когда это будет работать, можно формировать сразу массивы:

$ID = array(1,2, ... 3000);

$NAME = array("Имя", "Имя2" ... "Имя3000");

S
На сайте с 04.02.2007
Offline
348
svv
#12
Sitealert:
Это что, количество посетителей сайта за сутки?

Нет, конечно. Это количество запросов к базе в сутки, в т.ч. и ботами поисковиков. Была б такая посещаемость, нанял бы программиста-профессионала.

MX
На сайте с 17.06.2004
Offline
160
#13

svv, попробуйте разделить свой файл базы на несколько файлов.

Например, на десять штук файлов в зависимости от первой цифры id. Потом условием выбирать нужный файл-базу.

Выше рекомендовали поменять текстовые файлы на БД. По своему опыту, по своим сайтам скажу, что сайты построенные на текстовых файлах ЛЕТАЮТ. Там где страница на MySQL собирается 2-3 секунды, на текстовых файлах это доли секунд. Я как-то переводил с вордресса сайт фирмы на свой самописный движок, на порядок быстрее сайт стал.

Плюс на ВПС переходите, всё будет намного быстрее.

D
На сайте с 07.11.2000
Offline
229
#14
MGRLX:
Например, на десять штук файлов в зависимости от первой цифры id. Потом условием выбирать нужный файл-базу.

Тоже так подумал, но не подойдет, т.к. поиск по всем полям: "имени, адресу, дате рождения и пр."

S
На сайте с 04.02.2007
Offline
348
svv
#15

А ВПС это выделенный сервер?

В чем его реальное преимущество?

LEOnidUKG
На сайте с 25.11.2006
Offline
1777
#16

Ребят, если хотят файлы, ну возьмите SQLite он как раз всё в файлах хранит. Если уж не хотят mysql.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
S
На сайте с 30.09.2016
Offline
469
#17

Я подозреваю, что неправильно организована логика работы системы, то есть по каждому поводу делается запрос к базе. Надо делать запрос один раз при заходе на сайт и больше к этому вопросу не возвращаться, пока клиент не уйдёт с сайта. И переходите на объектно-ориентированное программирование, это здорово облегчает жизнь.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
S
На сайте с 04.02.2007
Offline
348
svv
#18
Sitealert:
Я подозреваю, что неправильно организована логика работы системы, то есть по каждому поводу делается запрос к базе. Надо делать запрос один раз при заходе на сайт и больше к этому вопросу не возвращаться, пока клиент не уйдёт с сайта. И переходите на объектно-ориентированное программирование, это здорово облегчает жизнь.

ВО!

Идеальный вариант.

Но КАК это сделать на вышеуказанном примере?

S
На сайте с 30.09.2016
Offline
469
#19
svv:
Но КАК это сделать?

Ручками:). Просто сесть и переписать код заново. На примере не получится, так как логика меняется.

danforth
На сайте с 18.12.2015
Offline
153
#20
svv:
ВО!
Идеальный вариант.
Но КАК это сделать?

Вы можете сгенерировать представление в файл .html, после чего проверять дату модификации. Если файлу больше дня/часа - генерировать новый. Поиск же написать на JS, который будет искать в таблице текст и фильтровать его.

Для этого используйте буферизацию вывода


// Проверяем есть ли файл html, и его дату создания чтобы определить не устаревший ли он, если да то
if ($expired === true) {
ob_start();

foreach ($array as $key => $value) {
echo "..something..";
}

$output = ob_get_contents();

// тут пишем в html файл, который потом инклюдим..
ob_end_clean();
}
// инклюдим кешированную базу, она будет свежей всегда
include 'cache.html';

Кеширование + поиск на клиенте снизит нагрузку.

Junior Web Developer
123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий