powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация кода запроса к mysql
13 сообщений из 13, страница 1 из 1
Оптимизация кода запроса к mysql
    #39237344
AziAd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите оптимизировать код:
ajax_init_test.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?php

$dbh = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", '$user', '$pass'); 
$stmt = $dbh->prepare('SELECT theme,question,reply1,reply2,reply3,reply4,correctly FROM test_questions WHERE theme=? ORDER BY RAND() LIMIT 0,15 ');

$results= array();
$questions = array();

foreach (explode(',', $_REQUEST['test_set']) as $ind => $thm) {	
	$results[$thm] = 0;	
	$stmt->execute([$thm,]);
	$questions = array_merge($questions, $stmt->fetchAll());
}

echo(json_encode(Array(
		"results" => 		$results,	
		"questions" => 		$questions,
		"num_questions" => 	count($questions),
		"is_end_test" => 		1,
	)));

?>



На виртуальном хостинге при 60-70 одновременных юзерах, веб-сервер выпадает. Таблица небольшая 800 записей.
...
Рейтинг: 0 / 0
Оптимизация кода запроса к mysql
    #39237353
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переделайте выбор рандомоной записи более оптимально.
...
Рейтинг: 0 / 0
Оптимизация кода запроса к mysql
    #39237373
AziAd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett, нашел такое решение

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
$stmt = $dbh->prepare(
	'SELECT test_questions.* FROM (
		SELECT id_question
		FROM gostest_questions
		WHERE theme=?
		ORDER BY RAND()
		LIMIT 15
	) AS ids JOIN test_questionsON test_questions.id_question = ids.id_question'
);



Что насчет него или есть более оптимальное?
...
Рейтинг: 0 / 0
Оптимизация кода запроса к mysql
    #39237375
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AziAd,

Сколько всего записей в таблице test_questions ?
Сколько из них подпадают под условие "theme=?" ?
...
Рейтинг: 0 / 0
Оптимизация кода запроса к mysql
    #39237379
AziAd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

всего 800 записей, под условие попадают около 100.
...
Рейтинг: 0 / 0
Оптимизация кода запроса к mysql
    #39237384
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AziAd,

Хм, вроде немного. А сколько времени выполняется запрос?
...
Рейтинг: 0 / 0
Оптимизация кода запроса к mysql
    #39237391
AziAd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
Из первого поста запрос выполняется ~ 0.0135 сек.
Из второго, который нашел на форуме ~ 0.0030 сек.

Сейчас на втором тестирую. Вообще мне кажется что запрос не такой тяжелый, но именно этот скрипт ajax_init_test.php максимально пользуемый и на нем вылетает сайт.
...
Рейтинг: 0 / 0
Оптимизация кода запроса к mysql
    #39237403
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AziAd,

Во втором только имя таблички почему-то gostest_questions вместо test_questions, а так может помочь.

Можно еще было бы попытаться параметры у MySQL покрутить, но непонятно, что это за "виртуальный хостинг" и есть ли возможность для таких действий.
...
Рейтинг: 0 / 0
Оптимизация кода запроса к mysql
    #39237414
AziAd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

обычный дешевый хостинг, где много сайтов на одном сервере.. виртуальный же хостинг называется :) . Нет ни шелла, ни доступа к конфигам. Просто хочу по максимуму из него выжать прежде чем переходить на выделенный сервак.
...
Рейтинг: 0 / 0
Оптимизация кода запроса к mysql
    #39237466
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AziAd,

А покажите план второго запроса на всякий случай.
И какая версия MySQL ?
...
Рейтинг: 0 / 0
Оптимизация кода запроса к mysql
    #39237481
AziAd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

версия 5.5.47-MariaDB
Про план второго запроса не совсем понял... Если сам запрос, то в третьем посте он.
Тест идет, нагрузки большой пока не было, 50-60 человек онлайн сейчас.
...
Рейтинг: 0 / 0
Оптимизация кода запроса к mysql
    #39237518
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AziAdПро план второго запроса не совсем понял... Если сам запрос, то в третьем посте он.Нет, нужен не сам запрос, а его план.
Его можно увидеть, если перед запросом добавить слово EXPLAIN и выполнить в любом клиенте.

Модератор: Тема перенесена из форума "PHP, Perl, Python".
...
Рейтинг: 0 / 0
Оптимизация кода запроса к mysql
    #39237713
AziAd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация кода запроса к mysql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]