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

Форум MySQL

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

 

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

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

тема: Большой объем даных в MySQL - медленно выполняется запрос

Сообщения:  [1-10]   [11-15] 

 
 автор: alex_fear   (05.03.2011 в 10:22)   письмо автору
 
   для: cheops   (05.03.2011 в 10:07)
 

Можно как то эт временные таблицы обойти?

  Ответить  
 
 автор: cheops   (05.03.2011 в 10:07)   письмо автору
 
   для: alex_fear   (05.03.2011 в 09:59)
 

Да, также как обычный, СУБД сама будет использовать индекс, если у неё будет такая возможность.

  Ответить  
 
 автор: alex_fear   (05.03.2011 в 09:59)   письмо автору
 
   для: cheops   (04.03.2011 в 15:32)
 

Это обычная таблица!
И как запрс выполнять! Если проиндексированы столбцы? Также как и обычный?

  Ответить  
 
 автор: cheops   (04.03.2011 в 15:32)   письмо автору
 
   для: alex_fear   (04.03.2011 в 15:19)
 

1) Погодите, а kat_tg какую структуру имеет (SHOW CREATE TABLE kat_tg)?
2) В ней уже есть индексы с именем TYP?
3) kat_tg это обычная таблица или временная?

  Ответить  
 
 автор: alex_fear   (04.03.2011 в 15:19)   письмо автору
 
   для: cheops   (04.03.2011 в 13:36)
 

как правильно создать интексы делаю индех по другой таблице
[SQL] CREATE INDEX `TYP` ON kat_tg (`TYP`);
[Err] 1061 - Duplicate key name 'TYP'
Вот что выдает в чом проблема?
И как их вобще создавать?
Сначала таблицу и создать индексы а потом данные заливать? Или после заливки данных?

  Ответить  
 
 автор: cheops   (04.03.2011 в 14:00)   письмо автору
 
   для: alex_fear   (04.03.2011 в 13:55)
 

У вас получается три вложенных цикла, причем две таблицы создаются искусственно перед этим. Лучше всего избавиться от временных таблиц (и необходимости их заполнения), а также свести 3 вложенных цикла к одному. После индексации таблицы, я думаю можно будет добиться существенного сокращения времени обработки запроса.

  Ответить  
 
 автор: alex_fear   (04.03.2011 в 13:55)   письмо автору
 
   для: cheops   (04.03.2011 в 13:34)
 

От 5 до 12

  Ответить  
 
 автор: cheops   (04.03.2011 в 13:36)   письмо автору
 
   для: alex_fear   (04.03.2011 в 13:23)
 

Есть ли надобность в создании временных таблиц? INSERT-запрос это достаточно дорогой запрос, а временные таблицы не обязательно располгаются в оперативной памяти, они могут быть сброшены на жесткий диск. Ведь многие задачи можно решить самообъединением таблицы, присвоив одной и той же таблице в многотабличном запросе разные псевдонимы.

  Ответить  
 
 автор: cheops   (04.03.2011 в 13:34)   письмо автору
 
   для: alex_fear   (04.03.2011 в 13:23)
 

В первую очередь в таблице kat_atg создайте индексы по столбцам TYP и GEN
CREATE INDEX `TYP` ON kat_atg (`TYP`);
CREATE INDEX `GEN` ON kat_atg (`GEN`);

  Ответить  
 
 автор: cheops   (04.03.2011 в 13:34)   письмо автору
 
   для: alex_fear   (04.03.2011 в 13:23)
 

Насколько много записей выводится запросом
SELECT * FROM `kat_atg`
WHERE `TYP`='$typ' and `GEN`='$gen'

Нет ли смысла применить здесь постраничную навигацию?

  Ответить  

Сообщения:  [1-10]   [11-15] 

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

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