Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
vomittingius
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 9
#1

Совет по оптимизации кода PHP - PHP БД

28.03.2013, 00:39. Просмотров 755. Ответов 13
Метки нет (Все метки)

Здравтвуйте, уважаемые пользователя форума, прошу вашего совета, по более коректному наисанию нижеследующего кода:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<? require "/header3.php";
$search_query = check_input($_REQUEST['query']);
$totalcount= 10000000000000000;
$limit = check_input($_REQUEST['limit']);
if ($limit == "") {
$limit = 100;
}
$limit2 = check_input($_REQUEST['limit2']);
if ($limit2 == "") {
$limit2 = 1000;
}
 
$start = check_input($_REQUEST['start']);
if ($start == "") {
$start = 0;
}
$displaystart = $start + 1;
$displayend = ($start + $limit > $totalcount ? $totalcount : $start + $limit);
if ($displayend == $totalcount) {
$nextset = 0;
} else 
$sort = check_input($_REQUEST['added']);
if ($sort == "") {
$sort = "added";
}
if ($search_query!="") {
$query = "select i.filename as filename, i.tn_filename as tn_filename, i.filepath as filepath, count( ih.filename ) as ctr from images i left outer join imagehits ih on i.filename = ih.filename where i.prv='0' and i.filename LIKE '%" . $search_query . "%' group by filename order by " . $sort . " desc limit " . $start . "," . $limit2;
}   
else {
$query = "select i.filename as filename, tn_filename, filepath, ih.filename as ctr from images i left join imagehits ih on i.filename = ih.filename where i.prv=0 group by filename order by " . $sort . " desc limit " . $start . "," . $limit;
}
$result = mysql_query($query) or die("Поиск происходит только на английском языке и цифрах.. / Search occurs only in English and figures. " );
$query_ti = "SELECT * from images where prv=0";
$result_ti = mysql_query($query_ti) or die("query_ti failed");
$totalimages = mysql_num_rows($result_ti);  
if ($totalcount>$totalimages) {
$totallimit=$totalimages; 
}
else {
$totallimit=$totalcount; }
if ($displayend>$totalimages) {
$displaylimit=$totalimages;
}
else {
$displaylimit=$displayend; }
if ($search_query!="") {
$totallimit=1000;
if ($displaylimit>$totallimit){$displaylimit=$totallimit;}
}
?>
Очень интересует вот этот код
PHP
1
2
3
else {
$query = "select i.filename as filename, tn_filename, filepath, ih.filename as ctr from images i left join imagehits ih on i.filename = ih.filename where i.prv=0 group by filename order by " . $sort . " desc limit " . $start . "," . $limit;
}
При обработке очень напрягается Мускул, до 10 секунд, сделал анализ пишет PRV - темпрори, типо при каждом сканировании создается временный файл, хотелось узнать как можно организовать данный запрос по другому, база данных в MYISAM

Очень прошу помощи хотя бы совета, или наводку.
http://www.cyberforum.ru/php-database/thread673652.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2013, 00:39
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Совет по оптимизации кода PHP (PHP БД):

PHP обфускатор для защиты php кода
Интересно кто чем пользуется? Есть ли хорощие бесплатные PHP обфускаторы? Не...

HTML+PHP+форма. Нужен совет.
Есть обычная HTML форма, для добавления продукта. В ней есть много полей:...

нужен совет -два скрипта касательно php, ajax,jquery
всем доброе время суток, возникла проблема нужен совет в этой странице с...

нужен совет. на php ещё не писал, тольлько на javascript немного
здравствуйте, нужен совет. на php ещё не писал, тольлько на javascript...

Декодирование кода PHP
Здравствуйте. Пользуюсь Вордпрессом и решил установить плагин Автопостирования,...

13
crautcher
2018 / 1990 / 463
Регистрация: 27.05.2011
Сообщений: 6,835
28.03.2013, 14:51 #2
индексы повесь
1
vomittingius
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 9
28.03.2013, 15:50  [ТС] #3
Цитата Сообщение от crautcher Посмотреть сообщение
индексы повесь
Подскажите как это сделать ? Очень вас прошу.
0
crautcher
2018 / 1990 / 463
Регистрация: 27.05.2011
Сообщений: 6,835
28.03.2013, 16:06 #4
MySQL
1
ALTER TABLE `table_name` ADD INDEX indexname ( fieldname )
на поля по которым сортируешь или групируешь
1
vomittingius
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 9
28.03.2013, 16:29  [ТС] #5
Проставил индексы по всем таблицам, сечас приведу запрос и резултит EXPLAIN

Добавлено через 3 минуты
http://pikbox.ru/img/6/-477101036CrashBox.WS_2013_03_28.jpg

Индексы для строки PRV - PRV_2,PRV_3,PRV_4,PRV_5,

Поставил запрос все равно выполняется как то с треском можно сказать, 10 одновременных запросов уводят мускул в долгое задумывание ((
0
crautcher
2018 / 1990 / 463
Регистрация: 27.05.2011
Сообщений: 6,835
28.03.2013, 16:38 #6
погоди , какие индексы у тебя стоят вообще ?
MySQL
1
SHOW INDEX FROM `tablename`
1
vomittingius
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 9
28.03.2013, 18:18  [ТС] #7
Вот по images таблице туда входит PRV

Добавлено через 1 час 30 минут
Ну как ? Без вариантов ? Не получается повысить производительность ни как, уже месяц бьюсь ( Если знаете подскажите пожалуйста!
0
Миниатюры
Совет по оптимизации кода PHP  
crautcher
2018 / 1990 / 463
Регистрация: 27.05.2011
Сообщений: 6,835
28.03.2013, 19:46 #8
Если сделать кешовую таблицу и заносить туда данные раз в день/час , а затем весь день быстро дергать не покатит - важен риалтайм ?
0
vomittingius
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 9
28.03.2013, 20:28  [ТС] #9
Цитата Сообщение от crautcher Посмотреть сообщение
Если сделать кешовую таблицу и заносить туда данные раз в день/час , а затем весь день быстро дергать не покатит - важен риалтайм ?
Покатит но как это реализовать ?
0
casual_visitor
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
28.03.2013, 20:51 #10
$totalcount= 10000000000000000; для начала убейте этого быдлокодера. После этого т.н. кода даже разбираться не хочется. Mysql - очень быстрая субд
0
vomittingius
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 9
28.03.2013, 21:31  [ТС] #11
Цитата Сообщение от casual_visitor Посмотреть сообщение
$totalcount= 10000000000000000; для начала убейте этого быдлокодера. После этого т.н. кода даже разбираться не хочется. Mysql - очень быстрая субд
Помогите дельным советом, как убрать не нарушив функционала, проект на грани распада из-за этого, потому как каждый день обработка все медленне и медленне скоро дойдет до 500 интернал сервер (((

Очень прошу откликнуться и дать несколько дельных советов.
0
casual_visitor
28.03.2013, 21:36
  #12

Не по теме:

ну как вам помочь.. это же проект... я без сарказма - требуется большая работа. А здесь на форуме можно получить быстрое и простое решение.. Наращивайте аппаратные возможности..$$$$

0
vomittingius
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 9
28.03.2013, 22:47  [ТС] #13
Цитата Сообщение от casual_visitor Посмотреть сообщение

Не по теме:

ну как вам помочь.. это же проект... я без сарказма - требуется большая работа. А здесь на форуме можно получить быстрое и простое решение.. Наращивайте аппаратные возможности..$$$$

Понял, но сервер, вот такой:

Оперативная память - 8GB
Центральный процессор - 3100MHZ Quad 9400
Жёсткий диск - 8TB

Куда ещё наращивать, база данных всего 600 мб
0
casual_visitor
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
29.03.2013, 16:37 #14
вы используете limit в запросах. на сколько я знаю mysql делает лимит в лоб:сначала выбирает вообще все, а потом отбрасывает все ненужное. при большом количестве записей это дело начинает дико тормозить... вот на хабре чел пытается бороться с этим

Добавлено через 13 минут
простейший вариант вместо limit использовать where по диапазону ключей.. Ключи не должны прерываться, иначе сложнее будет организовать получение одинакового количества строк в каждом запросе.. но скорость в любом случае возрастет на порядки
0
29.03.2013, 16:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2013, 16:37
Привет! Вот еще темы с решениями:

Деобфускация PHP кода
Есть 2 обфусцированные php фала. Какой-то не хороший человек, в этих файлах,...

Аудит php-кода
Есть ли добрые люди которые на добровольных началах проведут аудит моего php...

Защита кода PHP
Есть ли методы зашиты кода PHP который лежит на виртуальном сервере от...

Комментирование кода PHP
Здравствуйте! Помогите закомментировать код PHP, Каждую строку по возможности....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru