Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как можно ускорить выборку полей из базы данных, оптимизацией запроса? / 16 сообщений из 16, страница 1 из 1
04.10.2021, 19:17
    #40101910
yuriynik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
Здравствуйте.
Подскажите как можно ускорить выборку полей из базы данных, оптимизацией запроса.
Есть таблица на 25 тыс записей весом 180 Мб. С ростом таблицы увеличилось время ответа сервера, страницы стали загружаться дольше.

Запрос выглядит так:
$queryResult = $dbRes->query("SELECT response_y, requested_time_y FROM ya_cache WHERE path_y = '$path_y'");

При обращении к таблице производится выборка только одной строки.
Может быть можно запрос как-то оптимизировать?
...
Рейтинг: 0 / 0
04.10.2021, 22:16
    #40101942
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
yuriynik,

По полю path_y индекс есть? Или, может быть, она уже является первичным ключом?
...
Рейтинг: 0 / 0
04.10.2021, 22:35
    #40101944
yuriynik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
miksoft,

Поле path_y - первичный ключ, индекс стоит. Сделал скрин для наглядности http://joxi.ru/DrloK76tVgvYNA
...
Рейтинг: 0 / 0
04.10.2021, 22:42
    #40101949
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
yuriynik
Сделал скрин для наглядности
Я не понимаю эту таблицу. Покажите вывод SHOW CREATE TABLE.
...
Рейтинг: 0 / 0
04.10.2021, 22:51
    #40101953
yuriynik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
miksoft
yuriynik
Сделал скрин для наглядности
Я не понимаю эту таблицу. Покажите вывод SHOW CREATE TABLE.

Вывод SHOW CREATE TABLE. Как это сделать, не подскажете?)
...
Рейтинг: 0 / 0
04.10.2021, 23:02
    #40101955
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
yuriynik,

Эта команда что выводит?
Код: sql
1.
SHOW CREATE TABLE ya_cache
...
Рейтинг: 0 / 0
05.10.2021, 07:09
    #40101969
yuriynik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
miksoft
yuriynik,

Эта команда что выводит?
Код: sql
1.
SHOW CREATE TABLE ya_cache



Вот что вывела http://joxi.ru/Dr8yaWZuo8oZem
Я в этом ничего не понимаю
...
Рейтинг: 0 / 0
05.10.2021, 07:40
    #40101972
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
CHAR(250) как первичный ключ - это [censored].
То же следует сказать и о наличии двух одинаковых индексов по полю первичного ключа.

Какой размер данных РЕАЛЬНО хранится в поле?
...
Рейтинг: 0 / 0
05.10.2021, 08:24
    #40101978
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
yuriynik
Вот что вывела
Копируйте текст текстом, не надо картинок.
...
Рейтинг: 0 / 0
05.10.2021, 11:16
    #40102021
yuriynik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
Akina
CHAR(250) как первичный ключ - это [censored].
То же следует сказать и о наличии двух одинаковых индексов по полю первичного ключа.

Какой размер данных РЕАЛЬНО хранится в поле?


Наверное CHAR(250) не годится для первичного ключа. Что можете посоветовать?
Выбрать другой тип записи для поля?

Записи в поле path_y (первичный ключ) имеют такой вид:
&system=iata&limit=200&transfers=true&format=json&from=&to=ALY&transport_types=plane&lang=ru_RU&page=1
Меняются только IATA-коды (&from= и &to=)
...
Рейтинг: 0 / 0
05.10.2021, 11:18
    #40102023
yuriynik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
miksoft
yuriynik
Вот что вывела
Копируйте текст текстом, не надо картинок.


Вот полный текст при вводе команды SHOW CREATE TABLE ya_cache:

CREATE TABLE `ya_cache` (
`path_y` char(250) NOT NULL,
`requested_time_y` timestamp NOT NULL DEFAULT current_timestamp(),
`response_y` mediumtext NOT NULL,
PRIMARY KEY (`path_y`),
UNIQUE KEY `path_y` (`path_y`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC
...
Рейтинг: 0 / 0
05.10.2021, 12:25
    #40102058
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
yuriynik
Записи в поле path_y (первичный ключ) имеют такой вид:
&system=iata&limit=200&transfers=true&format=json&from=&to=ALY&transport_types=plane&lang=ru_RU&page=1
Меняются только IATA-коды (&from= и &to=)

Это ужасно... нормализация? не, не слышали...

Вопрос - допустимо ли изменение структуры хранения данных? или на неё дофига уже что завязано? если так - допустимо ли минорное изменение и создание вычисляемых полей?

В любом случае - следует удалить дублирующий индекс:

Код: sql
1.
ALTER TABLE ya_cache DROP INDEX path_y;



yuriynik
Я в этом ничего не понимаю

Ну вариантов два. Либо берётесь за изучение и начинаете понимать, или наших ответов Вы тоже не поймёте.
...
Рейтинг: 0 / 0
05.10.2021, 13:11
    #40102073
yuriynik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
Akina,

Могу сократить запрос, первичный ключ сделать в таком виде:
&from=MOW&to=ALY

Это ускорит работу?
...
Рейтинг: 0 / 0
05.10.2021, 13:24
    #40102077
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
yuriynik
Могу сократить запрос, первичный ключ сделать в таком виде:
&from=MOW&to=ALY
Должно быть два новых поля, каждое из которых хранит только одно значение (MOV и ALY соответственно). А первичным ключом должен быть композитный индекс по этим двум полям.
Либо первичный ключ синтетический, плюс композитный уник.
...
Рейтинг: 0 / 0
05.10.2021, 15:13
    #40102111
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
авторCHAR(250) как первичный ключ - это [censored].

нормальная ситуация как по мне. эта табличка - тупо кэширование сгенерированных html которые зависят от всех параметров в адресной строке.

другой вопрос что делать это надо на  nginx
...
Рейтинг: 0 / 0
05.10.2021, 15:15
    #40102113
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
настройки MYSQL покажите. 85% что просто увеличение кэша индексов сделать надо
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как можно ускорить выборку полей из базы данных, оптимизацией запроса? / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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