Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Очень медленно работает запрос с подзапросом (seyfer) 11/12/2011 - 13:14:08
      Re: Очень медленно работает запрос с подзапросом (Akina) 11/12/2011 - 20:50:48
      Re: Очень медленно работает запрос с подзапросом (seyfer) 12/12/2011 - 05:57:15
      Re: Очень медленно работает запрос с подзапросом (seyfer) 12/12/2011 - 06:05:04
      Re: Очень медленно работает запрос с подзапросом (seyfer) 12/12/2011 - 06:54:28
      Re: Очень медленно работает запрос с подзапросом (seyfer) 12/12/2011 - 06:55:22

> Original message text:
> From: seyfer - 11/12/2011 - 13:14:08
> Subject:Очень медленно работает запрос с подзапросом
> -----------------
> Добрый день.
>
> Ситуация такая. Во первых мы имеем дело с большой таблицей debtors 3000-5000 записей. Мне нужно выбрать из этой таблицы записи только те, которые не входят в записи, получаемые другим запросом.
>
> Сам запрос
>
>
> $obz_query =
> "SELECT debtors.*, FROM_UNIXTIME(block_start_date) AS date
> FROM debtors
> WHERE users_id NOT IN(SELECT users_id FROM debtors, complete, notes
> WHERE block_start_date < compl_date AND compl_note = note_id
> AND n_abon_id = users_id AND is_juridical = 0)
> AND is_juridical = 0
> ORDER BY {$_SESSION['sort']} {$sort_by}
> LIMIT $start, $num";
>
>
>
> Complete - база с обработанными debtors.
> Notes - заметки к debtors.
>
> Соответственно через notes идет связь между Complete и Notes по compl_note = note_id AND n_abon_id = users_id.
> Сейчас в Complete и Notes по 500 записей но они будут расти до 10000 и больше.
>
> Нагрузка на сервер получается дикая.
>
> Как-то можно иначе составить запрос?
>


From: seyfer - 12/12/2011 - 05:57:15
Subject:Очень медленно работает запрос с подзапросом
-----------------
--
-- Table structure for table `complete`
--

CREATE TABLE `complete` (
`compl_id` int(11) NOT NULL AUTO_INCREMENT,
`compl_note` int(11) NOT NULL,
`c_full_name` varchar(255) NOT NULL,
`c_address` varchar(255) NOT NULL,
`c_w_telephone` varchar(100) NOT NULL,
`c_h_telephone` varchar(100) NOT NULL,
`c_m_telephone` varchar(100) NOT NULL,
`c_balance` float NOT NULL,
`c_credit` float NOT NULL,
`c_services` varchar(255) NOT NULL,
`c_tariff_name` varchar(120) NOT NULL,
`c_account_id` int(11) NOT NULL,
`c_block_date` int(11) NOT NULL,
`compl_date` int(11) NOT NULL,
PRIMARY KEY (`compl_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=99 ;

-- --------------------------------------------------------

--
-- Table structure for table `debtors`
--

CREATE TABLE `debtors` (
`users_id` int(11) NOT NULL DEFAULT '0',
`full_name` varchar(255) NOT NULL,
`actual_address` varchar(255) NOT NULL,
`building` varchar(15) NOT NULL,
`flat_number` varchar(15) NOT NULL,
`work_telephone` varchar(100) NOT NULL,
`home_telephone` varchar(100) NOT NULL,
`mobile_telephone` varchar(100) NOT NULL,
`balance` float NOT NULL DEFAULT '0',
`credit` float NOT NULL DEFAULT '0',
`services` varchar(255) NOT NULL,
`tariff_name` varchar(120) NOT NULL DEFAULT ' ',
`account_id` int(11) NOT NULL DEFAULT '0',
`block_start_date` int(11) NOT NULL DEFAULT '0',
`is_juridical` int(11) NOT NULL DEFAULT '0',
KEY `users_id` (`users_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

-- --------------------------------------------------------

--
-- Table structure for table `notes`
--

CREATE TABLE `notes` (
`note_id` int(11) NOT NULL AUTO_INCREMENT,
`comment` text NOT NULL,
`n_oper_id` int(5) NOT NULL,
`n_abon_id` int(11) NOT NULL,
`n_why_id` int(3) NOT NULL,
`n_date` int(11) NOT NULL,
PRIMARY KEY (`note_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=102 ;



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
40805



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |