Производительность «выберите *, где« дата и время »> = СЕЙЧАС () - ИНТЕРВАЛ 6 МЕСЯЦЕВ»

Я разрабатываю приложение о математических вопросах и ответах. Для каждого члена есть история вопросов.

Для простоты таблица вопросов выглядит примерно так:

question_idx(int,PK) | subject(varchar) | level(varchar) | reg_date(datetime,INDEX)

Я хочу выбрать вопрос менее 6 месяцев назад. Запрос:

SELECT * FROM QUESTION WHERE reg_date >= NOW() - 6 MONTH;

Этот запрос лучше всего оптимизирован?

Мой вопрос: этот запрос работает как ожидаемый результат?

Vijunav Vastivch 22.03.2019 08:49

Это больше похоже на проверку кода

Raymond Nijland 22.03.2019 09:01

Что вам говорит план выполнения запроса?

Ben Ootjers 22.03.2019 09:10

объяснить сказал 'используя где'

PelConn 22.03.2019 09:21

Если вы хотите выбрать все столбцы из таблицы, то, скорее всего, вы не сможете улучшить этот запрос. Ваш запрос доступен для анализа, и ваша таблица индексируется по единственному предикату. Всегда лучше указывать столбцы, которые вы хотите выбрать явно. Независимо от того, могут ли изменения в инфраструктуре или структуре данных улучшить ситуацию, требуется огромное количество дополнительной информации о вашей среде.

Ben 22.03.2019 09:37

Можете ли вы показать фактический полный вывод EXPLAIN? Одной из возможных причин отсутствия «Использование индекса» в плане запроса может быть то, что большинство строк в любом случае были созданы менее шести месяцев назад. Эвристика для этого примерно такова: если по оценкам оптимизатора совпадают более двух третей строк, быстрее выполнить линейное сканирование таблицы вместо чтения строк в индексном порядке, что вызвало бы случайный ввод-вывод...

Hartmut Holzgraefe 22.03.2019 17:37

Сколько времени занимает запрос? Как часто вы будете выполнять запрос? Другими словами, зачем вам нужен оптимизированный запрос это?

Rick James 07.05.2019 02:27
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
7
59
0

Другие вопросы по теме