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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Оптимизация случайной выборки
 
 автор: ascerb   (07.01.2007 в 12:40)   письмо автору
 
 

Вопрос: Можно ли как-то оптимизировать скорость случайной выборки из БД?

Есть 2 таблицы с отпарсенными RSS новостями и анекдотами.
На странице необходимо выводить случайный анекдот и новость.

Использую запрос:

$query3 = "SELECT 
                     anek.anekdot AS anekdot, 
          anek.rubrika AS rubrika,

          rss_news.news_id AS rss_news_id,          
          rss_news.rubrika AS rss_rubrika,
          rss_news.title AS rss_title,
          rss_news.descr AS rss_descr,
          rss_news.data AS rss_data

        FROM 
        ".$table['anekdot']." AS anek,
        ".$table['rss_news']." as rss_news


        ORDER BY RAND() LIMIT 1
        
        ";

В таблицах:

CREATE TABLE dir_rss_news (
  news_id int(8) NOT NULL auto_increment,
  rubrika varchar(70) NOT NULL default '',
  title varchar(255) NOT NULL default '',
  url varchar(255) NOT NULL default '',
  descr text NOT NULL,
  `data` varchar(20) NOT NULL default '',
  PRIMARY KEY  (news_id)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

CREATE TABLE dir_anekdot (
  anek_id int(8) NOT NULL auto_increment,
  anekdot text NOT NULL,
  rubrika varchar(70) NOT NULL default '',
  PRIMARY KEY  (anek_id)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

(в первой таблице около 650 сообщений, во второй около 50)

   
 
 автор: cheops   (07.01.2007 в 13:42)   письмо автору
 
   для: ascerb   (07.01.2007 в 12:40)
 

А проблема в чём? Медленно работает?

   
 
 автор: aScerb   (07.01.2007 в 14:00)   письмо автору
 
   для: cheops   (07.01.2007 в 13:42)
 

да. почти секунду

   
 
 автор: cheops   (07.01.2007 в 14:32)   письмо автору
 
   для: ascerb   (07.01.2007 в 12:40)
 

Таблицы dir_rss_news и dir_anekdot связаны между собой?

   
 
 автор: aScerb   (07.01.2007 в 14:46)   письмо автору
 
   для: cheops   (07.01.2007 в 14:32)
 

нет, не связаны вроде

   
 
 автор: cheops   (07.01.2007 в 17:34)   письмо автору
 
   для: aScerb   (07.01.2007 в 14:46)
 

А почему тогда используется многотабличный запрос? Возможно два однотабличных запроса будут выполняться быстрее.

   
 
 автор: Trianon   (07.01.2007 в 21:41)   письмо автору
 
   для: aScerb   (07.01.2007 в 14:46)
 

Вы строите таблицу из примерно трех с половиной десятков тысяч записей, и удивляетесь, что тормозит?

   
 
 автор: LuxeMate   (07.01.2007 в 22:10)   письмо автору
 
   для: Trianon   (07.01.2007 в 21:41)
 

>да. почти секунду
+1 :D
1 секунда это конечно же ужасно долго :D

   
Rambler's Top100
вверх

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