SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.01.2018 00:03:50

zaqwsx_
Участник
Зарегистрирован: 29.01.2018
Сообщений: 3

Помогите, тормозит JOIN

Помогите пожалуйста.

У меня запрос выполняется очень долго, если убрать JOIN, или ORDER, то все просто летает.

SELECT DISTINCT onf.*, seo.*,
                           FLOOR(TO_DAYS(NOW())-TO_DAYS(FROM_UNIXTIME(dateadded))) as putdate                           
                           FROM on_files AS onf
                           LEFT JOIN seotext AS seo ON onf.fileid = seo.item_id AND seo.class = 'app\\models\\OnFiles'                            
                           WHERE onf.status = '1'
                           ORDER BY onf.timesplayed DESC LIMIT 0 , 180




Сама база такая :

--
-- Структура таблицы `on_files`
--

CREATE TABLE `on_files` (
  `fileid` int(11) NOT NULL,
  `file` text NOT NULL,
  `icon` text NOT NULL,
  `video` text NOT NULL,
  `filelocation` enum('1','2','3') NOT NULL DEFAULT '1',
  `iconlocation` enum('1','2') NOT NULL DEFAULT '1',
  `customcode` text NOT NULL,
  `title` text NOT NULL,
  `title_m` text NOT NULL,
  `title_m_en` varchar(255) NOT NULL,
  `title_en` text NOT NULL,
  `description` text NOT NULL,
  `description_m` text NOT NULL,
  `description_m_en` text NOT NULL,
  `description_en` text NOT NULL,
  `keywords` text NOT NULL,
  `keywords_en` text NOT NULL,
  `width` int(11) NOT NULL DEFAULT '0',
  `height` int(11) NOT NULL DEFAULT '0',
  `timesplayed` int(11) NOT NULL DEFAULT '0',
  `status` enum('0','1','2','3') NOT NULL DEFAULT '1',
  `filetype` varchar(55) NOT NULL DEFAULT '',
  `dateadded` int(10) NOT NULL DEFAULT '0',
  `rating` int(100) NOT NULL DEFAULT '0',
  `rating_n` int(11) NOT NULL DEFAULT '0',
  `added_by` int(11) NOT NULL DEFAULT '0',
  `mobile` enum('0','1','2') NOT NULL DEFAULT '0',
  `rightblock` enum('0','1') NOT NULL DEFAULT '1',
  `score_type` enum('1','2') NOT NULL DEFAULT '1',
  `youtube_urllink` varchar(255) NOT NULL,
  `youtube_userid` int(11) NOT NULL,
  `youtube_approve` int(2) NOT NULL DEFAULT '0' COMMENT 'разрешен, или нет',
  `slug` varchar(128) NOT NULL,
  `category` int(11) NOT NULL,
  `totalvotes` int(11) NOT NULL,
  `totalvotepoints` int(11) NOT NULL,
  `adult` int(11) NOT NULL,
  `scores` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

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

--
-- Структура таблицы `seotext`
--

CREATE TABLE `seotext` (
  `seotext_id` int(11) NOT NULL,
  `class` varchar(128) NOT NULL,
  `item_id` int(11) NOT NULL,
  `h1_ru` varchar(255) DEFAULT NULL,
  `h1_en` varchar(255) DEFAULT NULL,
  `title_ru` varchar(255) DEFAULT NULL,
  `title_en` varchar(255) DEFAULT NULL,
  `keywords` varchar(128) DEFAULT NULL,
  `description_ru` varchar(255) DEFAULT NULL,
  `description_en` varchar(255) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

--
-- Индексы сохранённых таблиц
--

--
-- Индексы таблицы `on_files`
--
ALTER TABLE `on_files`
  ADD PRIMARY KEY (`fileid`),
  ADD KEY `dateadded` (`dateadded`),
  ADD KEY `status` (`status`),
  ADD KEY `dateadded_2` (`dateadded`),
  ADD KEY `timesplayed` (`timesplayed`),
  ADD KEY `status_2` (`status`),
  ADD KEY `fileid` (`fileid`);

--
-- Индексы таблицы `seotext`
--
ALTER TABLE `seotext`
  ADD PRIMARY KEY (`seotext_id`),
  ADD UNIQUE KEY `model_item` (`class`,`item_id`),
  ADD KEY `item_id` (`item_id`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--

Неактивен

 

#2 30.01.2018 12:43:12

zaqwsx_
Участник
Зарегистрирован: 29.01.2018
Сообщений: 3

Re: Помогите, тормозит JOIN

В общем убрал DISTINCT, и все заработало вроде нормально, но почему так происходит ?

Отредактированно zaqwsx_ (30.01.2018 12:44:25)

Неактивен

 

#3 30.01.2018 12:46:24

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2421

Re: Помогите, тормозит JOIN

DISTINCT  - в определенном смысле аналог group by.
Затратнее сначала выбрать 100 неповторяющихся элементов, нежели просто 100 элементов.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#4 01.02.2018 12:38:25

zaqwsx_
Участник
Зарегистрирован: 29.01.2018
Сообщений: 3

Re: Помогите, тормозит JOIN

понятно, спасибо

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson