powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
16 сообщений из 16, страница 1 из 1
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
    #40101910
yuriynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Подскажите как можно ускорить выборку полей из базы данных, оптимизацией запроса.
Есть таблица на 25 тыс записей весом 180 Мб. С ростом таблицы увеличилось время ответа сервера, страницы стали загружаться дольше.

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

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

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

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

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

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

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



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

Какой размер данных РЕАЛЬНО хранится в поле?
...
Рейтинг: 0 / 0
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
    #40101978
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yuriynik
Вот что вывела
Копируйте текст текстом, не надо картинок.
...
Рейтинг: 0 / 0
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
    #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
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
    #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
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
    #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
Как можно ускорить выборку полей из базы данных, оптимизацией запроса?
    #40102073
yuriynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

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

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

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

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


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