Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос выполняется очень долго, Удаление записей без подчиненных 
V
    Опции темы
Freak_FB
  Дата 4.3.2010, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 13.10.2006

Репутация: нет
Всего: 4



Помогите оптимизировать запрос. Есть в моей базе две таблицы: zameses и rashod. В их назначение вдаваться не будем, обьясню только основные поля.

Таблица zameses:
Код

CREATE TABLE `zameses` (
  `Counter` int(11) NOT NULL auto_increment,
  `RecipeID` int(11) NOT NULL,
  `ZmVolume` float NOT NULL,
  `TS_DateTime` datetime default NULL,
  PRIMARY KEY  (`Counter`),
  KEY `i_zameses` (`Counter`,`RecipeID`,`TS_DateTime`)
) ENGINE=InnoDB AUTO_INCREMENT=1351 DEFAULT CHARSET=utf8


Counter - счетчик, RecipeID - ссылка на запись в parent-таблице, TS_DateTime - уникальный в общем-то штамп времени.


Таблица rashod:
Код

CREATE TABLE `rashod` (
  `Counter` int(11) NOT NULL auto_increment,
  `ZamesID` int(11) default NULL,
  `DzIndex` int(11) NOT NULL default '0',
  `Rashod` float NOT NULL default '0',
  `Zadano` float NOT NULL default '0',
  `TS_DateTime` datetime default NULL,
  PRIMARY KEY  (`Counter`),
  KEY `i_rashod` (`Counter`,`ZamesID`,`TS_DateTime`)
) ENGINE=InnoDB AUTO_INCREMENT=7985 DEFAULT CHARSET=utf8

Counter - счетчик, _Zames ID - ссылка на запись в таблице zameses, TS_DateTime - время.

Мой запрос на удаление:
Код

DELETE zameses.*
  FROM zameses
    LEFT JOIN rashod
      ON zameses.Counter = rashod.ZamesID
  WHERE rashod.ZamesID IS NULL;


Записей в zameses: 1332
Записей в rashod: 7984

Запрос выполняется на моем не шибко навороченном ноутбуке 9 с лишним секунд.

В общем, помогите оптимизировать запрос, или подскажите, может я с индексами напортачил.


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
Kesh
Дата 4.3.2010, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 15
Всего: 54



Ключ на rashod.ZamesID?


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Freak_FB
Дата 4.3.2010, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 13.10.2006

Репутация: нет
Всего: 4



Я наверное не особо понимаю ключи. У меня есть составной ключ, где ZamesID фигурирует. Или стоит разбить ключ, и каждое поле в отдельности сделать ключом?


It's a magic  smile 

Ничего не менял, просто добавил ещё один ключ по ZamesID. Запрос сразу стал выполняться на несколько порядков шустрее.

Спасибо за помощь.

P.S.: и всё таки, в моем случае - с ключами что можно сделать, чтобы было более ... нормально?

Это сообщение отредактировал(а) Freak_FB - 4.3.2010, 13:20


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
Akina
Дата 4.3.2010, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 453



Цитата(Freak_FB @  4.3.2010,  14:12 Найти цитируемый пост)
 в моем случае - с ключами что можно сделать, чтобы было более ... нормально?

В твоём случае, видимо, прочитать документацию по индексированию - что, как и зачем. Причём читать до полного освоения.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1142 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.