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

1 23
S
На сайте с 30.09.2016
Offline
469
#21
danforth:
Вы можете сгенерировать представление в файл .html

Лучше массив или объект в JSON. Или сериализовать.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
R
На сайте с 20.02.2015
Offline
59
#22

Как предлагали выше хранить БД в виде ПХП файла.


// создает файл db.php где объявлены $ID, $NAME, $BIRTH, $VES, $ADRESS с заполненными данными
// в случаи обновления base.txt обновляется и db.php с новыми данными
if (file_exists(__DIR__."/db.php")) {
include(__DIR__."/db.php");
if ($careded_this_database < filemtime(__DIR__."/base.txt"))
create_db();
} else {
create_db();
}
function create_db() {
global $ID, $NAME, $BIRTH, $VES, $ADRESS; // глобальной области видимости
$fp = fopen(__DIR__."/base.txt", "r");
while (!feof($fp)) {
$line = fgets($fp);
list($id, $name, $birth, $ves, $adress) = explode("\t", trim($line));
$ID[$id] = $id;
$NAME[$id] = $name;
$BIRTH[$id] = $birth;
$VES[$id] = $ves;
$ADRESS[$id] = $adress;
}
file_put_contents(__DIR__."/db.php", "<?php\n".
"\$careded_this_database=".filemtime(__DIR__."/base.txt").
";\$ID=".var_export($ID, true).
";\$NAME=".var_export($NAME, true).
";\$BIRTH=".var_export($BIRTH, true).
";\$VES=".var_export($VES, true).
";\$ADRESS=".var_export($ADRESS, true).
";\n?>");
include(__DIR__."/db.php");
}
var_dump($ID, $NAME, $BIRTH, $VES, $ADRESS);
Aisamiery
На сайте с 12.04.2015
Offline
293
#23
LEOnidUKG:
Ребят, если хотят файлы, ну возьмите SQLite он как раз всё в файлах хранит. Если уж не хотят mysql.

А mysql наверное в пикселях вашего монитора сохраняет данные, а не в файлы?

---------- Добавлено 20.10.2016 в 03:00 ----------

ТС, самый простой вариант, если сложные выборки, переводи все в SQL базы, остальные варианты более сложные.

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

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
TF-Studio
На сайте с 17.08.2010
Offline
334
#24

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

попробуйте осилить, благо это простейшее мероприятие.

на перспективу. делать связки из memcache + noSql = куда более знатное извращение

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
S
На сайте с 04.02.2007
Offline
318
svv
#25

Искренне всех благодарю.

Dimka:
На первом этапе можно формировать каждый элемент массива отдельно:
$ID[12] = 12;
$NAME[12] = "Имя";

Этот метод сократил нагрузку на 38%

Dimka:
Когда это будет работать, можно формировать сразу массивы:
$ID = array(1,2, ... 3000);
$NAME = array("Имя", "Имя2" ... "Имя3000");

Этот метод сократил нагрузку на 67%

1 23

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