В боевом режиме виснет сортировка по дате

257
28 января 2017, 09:53

В локале полный дамп базы - все летает. На хостинге висим в глушняк (504я). На первый взгляд все "как всегда" но бьюсь 2й день. Все подвисает. Итак:

SELECT * FROM nt_order_info
INNER JOIN stb_pass sp ON j_user_id = customer_id
ORDER BY date_order ASC LIMIT 0,20

Одна таблица nt_order_info 18к записей, другая stb_pass 56к. Не пустые таблицы, но не критичный размер-то. А вешает меня ORDER BY по дате. Без него чуть меньше секунды, тоже дофига, но сойдет. Сама по себе таблица ( nt_order_info) без join с другой сортируется нормально, без тормозов излишних. Более того, по тому же customer_id присоединяю другую таблицу (occustomer, на 43к записей) с той же сортировкой ORDER BY date_order - летаем. Ну и на последок - таблицы occustomer и stb_pass джойнятся (правда без сортировки, ибо дата осталась в первой таблице) тоже без проблем.

Что еще. Почитал статью про strait_join (https://habrahabr.ru/post/138163/) - не помогло. Пробовал обе сделать MyISAM или обе MyISAM - неа...

Вот сами таблички:

CREATE TABLE `nt_order_info` (
  `id_order` int(11) NOT NULL AUTO_INCREMENT,
  `date_order` int(11) NOT NULL,
  `button` varchar(256) NOT NULL,
  `id_status` int(11) NOT NULL,
  `name` varchar(256) NOT NULL,
  `mail` varchar(256) NOT NULL,
  `phone` varchar(256) NOT NULL,
  `call_time` varchar(256) NOT NULL,
  `question` text NOT NULL,
  `refer` varchar(256) NOT NULL,
  `ip` varchar(256) NOT NULL,
  `utm` text NOT NULL,
  `comments` text NOT NULL,
  `customer_id` int(11) NOT NULL,
  PRIMARY KEY (`id_order`) ) ENGINE=MyISAM AUTO_INCREMENT=18119 /*!40101 DEFAULT CHARSET=utf8 */;

CREATE TABLE `stb_pass` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `stb_login` int(11) NOT NULL,
  `stb_password` int(11) NOT NULL,
  `j_user_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=70132 /*!40101 DEFAULT CHARSET=cp1251 */;

 CREATE TABLE `occustomer` (
`customer_id` int(11) NOT NULL AUTO_INCREMENT,
`store_id` int(11) NOT NULL DEFAULT '0',
`firstname` varchar(32) NOT NULL DEFAULT '',
`lastname` varchar(32) NOT NULL DEFAULT '',
`email` varchar(96) NOT NULL DEFAULT '',
`telephone` varchar(32) NOT NULL DEFAULT '',
`fax` varchar(32) NOT NULL DEFAULT '',
`password` varchar(40) NOT NULL DEFAULT '',
`salt` varchar(9) NOT NULL DEFAULT '',
`cart` text,
`wishlist` text,
`newsletter` tinyint(1) NOT NULL DEFAULT '0',
`address_id` int(11) NOT NULL DEFAULT '0',
`customer_group_id` int(11) NOT NULL,
`ip` varchar(15) NOT NULL DEFAULT '0',
`status` tinyint(1) NOT NULL,
`approved` tinyint(1) NOT NULL,
`token` varchar(255) NOT NULL,
`date_added` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`cid` varchar(80) NOT NULL,
`cid_added` datetime NOT NULL,
`iso_country` varchar(2) NOT NULL,
`character` varchar(30) NOT NULL,
`comment` text NOT NULL,
PRIMARY KEY (`customer_id`)) ENGINE=MyISAM AUTO_INCREMENT=49421 /*!40101 DEFAULT CHARSET=utf8 */;

Локал explain:

Боевой explain:

READ ALSO
Как скрыть консоль обновления mysql?

Как скрыть консоль обновления mysql?

Каждый день при обновлении mysql вижу как она при этом распахивает окно и запускает терминал с выводом своего логаПросмотрел её настройки ничего...

393
Что не так с MySQL

Что не так с MySQL

Имею такую таблицу заказов: При каждом посещении сайта, выполняется такой запрос:

378
Универсальный метод Java с параметрами

Универсальный метод Java с параметрами

Есть класс MyGeneric<T> с полем aНужно создать метод public T Add(T obj) который реализует сумму Integer и конкатенацию строк String

506
Порядок при сортировке списка с помощью компаратора

Порядок при сортировке списка с помощью компаратора

Имеем такой тестовый кодПредполагается, что созданные классы должны отсортироваться в первом случае (LegComparator) по наибольшему количеству...

333