пропустите копирование к tmp таблице на диске mysql

У меня есть вопрос для больших запросов mysql. Действительно ли возможно пропустить копирование к tmp таблице на дисковом шаге, который mysql делает для выполнения больших запросов, или действительно ли возможно заставить его пойти быстрее? потому что этот шаг берет слишком долго для возвращения результатов моих запросов. Я читал на странице MySQL, что mysql выполняет это для сохранения памяти, но я не забочусь о сохранении памяти, я просто хочу получить результаты своих запросов назад FAST, у меня есть достаточно памяти на моей машине. Кроме того, мои таблицы правильно индексируются так, это не причина, почему мои запросы являются медленными.

Какая-либо справка?

Спасибо

60
задан 23 September 2011 в 20:48

1 ответ

Можно также пропустить копию к tmp таблице на дисковой части (не отвеченный в выбранном ответе)

  1. при предотвращении некоторых типов данных:

Поддержка типов данных переменной длины (включая BLOB и ТЕКСТ) не поддерживаемый ПАМЯТЬЮ.

от https://dev.mysql.com/doc/refman/8.0/en/memory-storage-engine.html (или https://mariadb.com/kb/en/library/memory-storage-engine / , если Вы используете mariadb).

  1. , Если Ваша временная таблица является достаточно маленькой: как сказано в выбранном ответе, Вы можете

    Увеличение переменные tmp_table_size и/или max_heap_table_size

, Но если Вы разделяете свой запрос в меньших запросах (не имеющий запрос, не помогает проанализировать Вашу проблему), можно заставить его соответствовать во временной таблице памяти.

1
ответ дан 1 November 2019 в 10:40

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

Похожие вопросы: