Новости | Документация | Download | Webboard | FAQ | Поиск | Контакты

Apache.RU - Webboard



Вернуться
Using temporary; Using filesort (Alex) 07/07 - 11:56:42
      Re: Using temporary; Using filesort (Dinky) 07/07 - 20:46:03
      Re: Using temporary; Using filesort (Alex) 09/07 - 10:34:59
      Re: Using temporary; Using filesort (Alex) 09/07 - 10:45:07
      Re: Using temporary; Using filesort (Dinky) 09/07 - 21:55:40

> Original message text:
> From: > Alex - 07/07 - 11:56:42
> Subject:Using temporary; Using filesort
> -----------------
> При выполнении сложного запроса на большой базе EXPLAIN выдает:
> "Using where; Using temporary; Using filesort" что незамедлительно сказывается на скорости выполнения запроса. Увеличение read_rnd_buffer_size и sort_buffer_size привело к незначительному улучшению. Подскажите какие еще настройки могут помочь избавиться от subj. Спасибо.
>


From: Alex - 09/07 - 10:34:59
Subject:Using temporary; Using filesort
-----------------
Запрос такой:
explain SELECT h.hostname , fo.FolderName, fn.filename,fl.size as size, fl.modifyDate as date, fl.searchDate as searchDate FROM hosts h, folders fo, files fl, filenames fn WHERE ((fn.filename LIKE '%avi%')) and fn.id = fl.id_name and fo.id = fl.id_folder and h.id=fo.id_host ORDER by fn.filename ASC LIMIT 0, 500

+-------+--------+--------------------+------------+---------+------------+------+----------------------------------------------+
| table | type | possible_keys | key | key_len | ref | rows | Extra |
+-------+--------+--------------------+------------+---------+------------+------+----------------------------------------------+
| h | index | PRIMARY | indexName | 30 | [NULL] | 339 | Using index; Using temporary; Using filesort |
| fo | ref | PRIMARY,indexHosts | indexHosts | 8 | h.ID | 2040 | |
| fl | ref | ByName,byFolder | byFolder | 8 | fo.ID | 2 | |
| fn | eq_ref | PRIMARY | PRIMARY | 8 | fl.ID_NAME | 1 | Using where |
+-------+--------+--------------------+------------+---------+------------+------+----------------------------------------------+

размер таблиц:
filenames: ~2.6 миллиона записей
files: > 16 миллионов
folders: ~2 мл
hosts: 650

иногда Using temporary; Using filesort не появляется (например если like 'anybody%') и запрос выполняется за 5-10 сек. Если же сабж появляется - может тормозить 5 мин.

скрипт по созданию такой:
# Host: epmw317
# Database: filesearch
# Table: 'filenames'
#
CREATE TABLE `filenames` (
`ID` bigint(20) NOT NULL auto_increment,
`FileName` varchar(255) NOT NULL default '',
PRIMARY KEY (`ID`),
KEY `filename` (`FileName`)
) TYPE=InnoDB;

# Host: epmw317
# Database: filesearch
# Table: 'files'
#
CREATE TABLE `files` (
`ID` bigint(20) NOT NULL auto_increment,
`ID_FOLDER` bigint(20) NOT NULL default '0',
`ID_NAME` bigint(20) NOT NULL default '0',
`size` int(20) NOT NULL default '0',
`type` smallint(11) NOT NULL default '0',
`modifyDate` timestamp(14) NOT NULL,
`searchDate` date NOT NULL default '0000-00-00',
PRIMARY KEY (`ID`),
KEY `bySize` (`size`),
KEY `ByName` (`ID_NAME`),
KEY `byFolder` (`ID_FOLDER`)
) TYPE=InnoDB;

# Host: epmw317
# Database: filesearch
# Table: 'folders'
#
CREATE TABLE `folders` (
`ID` bigint(20) NOT NULL auto_increment,
`ID_HOST` bigint(20) NOT NULL default '0',
`FolderName` text NOT NULL,
PRIMARY KEY (`ID`),
KEY `indexHosts` (`ID_HOST`)
) TYPE=InnoDB;

# Host: epmw317
# Database: filesearch
# Table: 'hosts'
#
CREATE TABLE `hosts` (
`ID` bigint(20) NOT NULL auto_increment,
`Hostname` varchar(30) NOT NULL default '',
PRIMARY KEY (`ID`),
KEY `indexName` (`Hostname`)
) TYPE=InnoDB;






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

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

 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
15989




  Copyright Apache.ru © 1999-2017, All Rights Reserved Разработка сайта: Inside.ru  
  РЕКЛАМА НА САЙТЕ: |