Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Оптимизировать очень простой запрос

Сообщения:  [1-5] 

 
 автор: vdm   (17.03.2009 в 18:26)   письмо автору
 
   для: ols   (17.03.2009 в 13:30)
 



CREATE TABLE IF NOT EXISTS `main` (
  `id` mediumint(9) NOT NULL auto_increment,
  `upid` int(9) NOT NULL default '0',
  `level` tinyint(4) NOT NULL default '0',
  `type` tinyint(1) NOT NULL default '0',
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  `text` text NOT NULL,
  `autor` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`),
  KEY `date` (`date`),
  KEY `type` (`type`,`upid`),
  FULLTEXT KEY `text` (`text`)
) TYPE=MyISAM AUTO_INCREMENT=133115 ;


  Ответить  
 
 автор: ols   (17.03.2009 в 13:30)   письмо автору
 
   для: vdm   (16.03.2009 в 22:55)
 

Приведите структуру таблицы

  Ответить  
 
 автор: vdm   (16.03.2009 в 22:55)   письмо автору
 
   для: Temnovit   (16.03.2009 в 22:16)
 

Есть индексы. Только sql ими не пользуется почему то. Элементов в индексе type, upid всего 21.

  Ответить  
 
 автор: Temnovit   (16.03.2009 в 22:16)   письмо автору
 
   для: vdm   (16.03.2009 в 20:55)
 

Создайте для таблицы два индекса:
(type, upid)
(date)

Должно помочь.

  Ответить  
 
 автор: vdm   (16.03.2009 в 20:55)   письмо автору
 
 

как можно опимизировать запрос:


SELECT id as nid, text as ntext, date_format(date,'%d-%m-%Y') as ndate, date_format(date,'%H:%i:%s') as ntime FROM main WHERE type = 1 AND upid=2 ORDER BY date DESC LIMIT 90160,20;


Куда проще? Но. На базе с 120000 полей он выполняется 50 сек!. Почему???

  Ответить  

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования