|
|
|
Помогите избавится от using filesort Начинающий
|
|||
|---|---|---|---|
|
#18+
explain SELECT I.id, I.title, I.short_text, I.quantity, I.psevd, I.liks, I.price, I.old_price, I.on_board, I.type, P.picture_file FROM {MY_DB_PREFIX}_item I LEFT JOIN {MY_DB_PREFIX}_pictures P ON (P.chapter = 'item' AND P.m = 1 AND I.id = P.item_id) LEFT JOIN {MY_DB_PREFIX}_brands B ON (B.id = I.brand_id AND B.lang_id = 'ru') LEFT JOIN {MY_DB_PREFIX}_categories C ON (C.id = I.cat_id AND C.lang_id = 'ru') WHERE(I.price BETWEEN 10 AND 1500 AND I.active = 1) ORDER BY I.on_board DESC Причем есть составной индекс по полям таблички item и отельный индекс по полю on_board как поступить не приложу ума помогите разобрацо плз!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 16:27:32 |
|
||
|
Помогите избавится от using filesort Начинающий
|
|||
|---|---|---|---|
|
#18+
1) Тут есть тег кода. 2) А где собсно explain? 3) Где DDL таблиц? 4) По какой логике все связывания левые? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 16:30:36 |
|
||
|
Помогите избавится от using filesort Начинающий
|
|||
|---|---|---|---|
|
#18+
1 SIMPLE I ref item_index item_index 1 const 150 Using where; Using filesort 1 SIMPLE P ref chapter,m,item_id chapter 66 const,muscle05_db.I.id 1 1 SIMPLE B eq_ref PRIMARY,lang_id,id PRIMARY 4 muscle05_db.I.brand_id 1 1 SIMPLE C eq_ref PRIMARY,lang_id PRIMARY 4 muscle05_db.I.cat_id 1 explain запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 16:34:17 |
|
||
|
Помогите избавится от using filesort Начинающий
|
|||
|---|---|---|---|
|
#18+
Левые связаны только по id движок myisam без внешних ключей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 16:36:10 |
|
||
|
Помогите избавится от using filesort Начинающий
|
|||
|---|---|---|---|
|
#18+
1) Почему левые, а не внутренние? 2) Где DDL? 3) Почему не пользуемся тегами? текстовая лапша плохо читается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 16:40:31 |
|
||
|
Помогите избавится от using filesort Начинающий
|
|||
|---|---|---|---|
|
#18+
CREATE TABLE `scms_categories` ( `id` int(11) NOT NULL AUTO_INCREMENT, `lang_id` varchar(2) NOT NULL, `parent` varchar(255) NOT NULL, `title` varchar(255) NOT NULL, `use_short_text` tinyint(1) NOT NULL, `create_date` int(11) NOT NULL, `edit_date` int(11) NOT NULL, `active` tinyint(1) NOT NULL, `sort` int(11) NOT NULL, `psevd` varchar(128) NOT NULL, `slider_slim` tinyint(1) NOT NULL DEFAULT '1', `slider_mass` tinyint(1) NOT NULL DEFAULT '1', `slider_tonus` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), KEY `lang_id` (`lang_id`), KEY `sort` (`sort`), KEY `psevd` (`psevd`), KEY `slider_tonus` (`slider_tonus`), KEY `active` (`active`), KEY `slider_mass` (`slider_mass`), KEY `slider_slim` (`slider_slim`), KEY `title` (`title`) ) ENGINE=MyISAM AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COMMENT='Категории'; CREATE TABLE `scms_pictures` ( `picture_id` int(11) NOT NULL AUTO_INCREMENT, `chapter` varchar(20) NOT NULL, `item_id` int(11) NOT NULL, `m` int(1) NOT NULL DEFAULT '0', `date` int(11) NOT NULL, `admin_id` int(6) NOT NULL, `picture_file` varchar(250) NOT NULL, `picture_bg` varchar(255) DEFAULT NULL, `sort` int(11) NOT NULL, `name` varchar(15) NOT NULL, `info` varchar(255) NOT NULL, `temp` int(1) NOT NULL DEFAULT '1', `comment` varchar(128) NOT NULL, PRIMARY KEY (`picture_id`), KEY `chapter` (`chapter`,`item_id`), KEY `m` (`m`), KEY `item_id` (`item_id`) ) ENGINE=MyISAM AUTO_INCREMENT=423 DEFAULT CHARSET=utf8 COMMENT='Данные о изображениях'; CREATE TABLE `scms_brands` ( `id` int(11) NOT NULL AUTO_INCREMENT, `brands` int(11) NOT NULL, `title` varchar(255) NOT NULL, `caption` varchar(255) NOT NULL, `link` varchar(255) NOT NULL, `create_date` int(11) NOT NULL, `edit_date` int(11) NOT NULL, `active` tinyint(1) NOT NULL, `sort` int(11) NOT NULL, `lang_id` varchar(2) NOT NULL, `psevd` varchar(128) NOT NULL, PRIMARY KEY (`id`), KEY `lang_id` (`lang_id`), KEY `sort` (`sort`), KEY `brands` (`brands`), KEY `title` (`title`), KEY `id` (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COMMENT='Брэнды'; CREATE TABLE `scms_item` ( `id` int(11) NOT NULL AUTO_INCREMENT, `lang_id` varchar(2) NOT NULL, `cat_id` int(11) unsigned NOT NULL, `on_board` int(11) unsigned NOT NULL DEFAULT '0', `chapter` varchar(255) NOT NULL, `title` varchar(255) NOT NULL, `sign` varchar(255) NOT NULL, `short_text` text NOT NULL, `text` longtext NOT NULL, `composition` text NOT NULL, `features` text NOT NULL, `keywords` text NOT NULL, `description` text NOT NULL, `use_short_text` tinyint(1) NOT NULL, `create_date` int(11) NOT NULL, `price` int(11) unsigned NOT NULL, `old_price` int(11) unsigned NOT NULL, `atikle` int(11) NOT NULL, `liks` int(11) NOT NULL, `edit_date` int(11) NOT NULL, `active` tinyint(1) NOT NULL, `sort` int(11) NOT NULL, `psevd` varchar(128) NOT NULL, `mass` tinyint(1) unsigned NOT NULL DEFAULT '1', `tonus` tinyint(1) unsigned NOT NULL DEFAULT '1', `slim` tinyint(1) unsigned NOT NULL DEFAULT '1', `type` varchar(255) NOT NULL, `quantity` varchar(255) NOT NULL, `term` varchar(255) NOT NULL, `brand_id` int(10) unsigned NOT NULL, `feeds` int(11) NOT NULL, `discount_condition` text NOT NULL, `specification` text NOT NULL, `describe` text NOT NULL, `top_title` varchar(255) NOT NULL, PRIMARY KEY (`id`), KEY `type` (`type`), KEY `item_index` (`active`,`term`,`price`), KEY `psevd` (`psevd`), KEY `on_board` (`on_board`) ) ENGINE=MyISAM AUTO_INCREMENT=178 DEFAULT CHARSET=utf8 COMMENT='Товары'; Вот таблицы..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 16:41:28 |
|
||
|
Помогите избавится от using filesort Начинающий
|
|||
|---|---|---|---|
|
#18+
Я не до конца понимаю различие между LEFT JOIN и INNER JOIN но последний по всем таблицам добавляет using where что не есть хорошо как я понимаю. Прошу извенить за плоское изяснение мыслей, но как смог... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2014, 16:48:17 |
|
||
|
Помогите избавится от using filesort Начинающий
|
|||
|---|---|---|---|
|
#18+
xoonyaкак поступить не приложу ума Да просто убери из запроса ORDER BY. Назачем он тебе там такой?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2014, 14:54:51 |
|
||
|
Помогите избавится от using filesort Начинающий
|
|||
|---|---|---|---|
|
#18+
xoonyaexplain SELECT I.id, I.title, I.short_text, I.quantity, I.psevd, I.liks, I.price, I.old_price, I.on_board, I.type, P.picture_file FROM {MY_DB_PREFIX}_item I LEFT JOIN {MY_DB_PREFIX}_pictures P ON (P.chapter = 'item' AND P.m = 1 AND I.id = P.item_id) LEFT JOIN {MY_DB_PREFIX}_brands B ON (B.id = I.brand_id AND B.lang_id = 'ru') LEFT JOIN {MY_DB_PREFIX}_categories C ON (C.id = I.cat_id AND C.lang_id = 'ru') WHERE(I.price BETWEEN 10 AND 1500 AND I.active = 1) ORDER BY I.on_board DESC Причем есть составной индекс по полям таблички item и отельный индекс по полю on_board как поступить не приложу ума помогите разобрацо плз!!! добавьте еше два индекса, отличаюшиеся порядком: 1. (прайс,активе) 2. (активе,присе) посмотрите если стало быстрее и какой имено индекс подцепился. второй убрать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2014, 07:11:20 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38725791&tid=1834323]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 284ms |

| 0 / 0 |
