Автор Тема: MySQL : temporary table (MEMORY) vs MyISAM  (Прочитано 2855 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
MySQL : temporary table (MEMORY) vs MyISAM
« : 10 Февраля 2006, 15:16:45 »
Ситуация такая. Есть две таблицы. Одна («table1») — временная, ENGINE=MEMORY; вторая («table2») — MyISAM.
В каждой два поля: id (integer), md5 (char(32));
ВыборкаSELECT id FROM table1 WHERE id NOT IN (SELECT id FROM table2); отрабатывает за секунду.
А выборка наоборотSELECT id FROM table2 WHERE id NOT IN (SELECT id FROM table1); вешает сервак MySQL наглухо. Поставил LIMIT 0,1 — запрос отработал за 3 секунды.
Что можно придумать?

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
MySQL : temporary table (MEMORY) vs MyISAM
« Ответ #1 : 10 Февраля 2006, 15:28:43 »
Решил проблему, добавив индекс во временную таблицу. Я и не предполагал, что это настолько сказывается :)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28