Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Слияние таблиц, JOIN, тормоза MySQL (Varravann) 20/10/2008 - 19:16:15
      Re: Слияние таблиц, JOIN, тормоза MySQL (bac) 20/10/2008 - 21:14:18
      Re: Re: Слияние таблиц, JOIN, тормоза MySQL (Varravann) 21/10/2008 - 13:05:25
      Re: Re: Слияние таблиц, JOIN, тормоза MySQL (bac) 21/10/2008 - 13:46:37
      Re: Re: Слияние таблиц, JOIN, тормоза MySQL (Jeck) 26/10/2011 - 15:27:54

> Original message text:
> From: Varravann - 20/10/2008 - 19:16:15
> Subject:Слияние таблиц, JOIN, тормоза MySQL
> -----------------
> Disclaimer: я в SQL вообще нуб, а поэтому прошу объяснять попонятнее (хотя в остальных вопросах я вполне компетентный программер).
>
> Диспозиция на поле боя: MySQL5.0.45 в составе Denwer, Виста, ноут на 2-гигагерцовом C2D T7300, 2 гига оперативы, в MySQL имеются две таблицы (пусть будут tA и tB) по 600 тысяч строк каждая (одна - 100 столбцов, другая - 150 столбцов, под 400Mb каждая по показаниям phpMyAdmin). Эти две таблицы по логике являются двумя частями единой 250-столбцовой таблицы, а поэтому в обеих таблицах есть идентификационный столбец nn с уникальным целочисленным номером строк (т.е. каждый используемый номер встречается по одному разу в tA и tB, но порядок может быть слегка разный).
>
> Требуется: делать выборки целых строк из той виртуальной единой 250-столбцовой таблицы.
> Я, начитавшись мануалов, сделал запрос типа такого:
>
> SELECT * FROM tA LEFT JOIN tB USING(nn)
>
> Но результата я дождаться не смог и за 3 часа (вызов делаю из Matlab'а через JDBC-драйвер, если что). Видимо, что-то я делаю не так, поскольку аналогичные запросы к каждой из двух подтаблиц по отдельности срабатывают за 5-10 секунд.
>
> Спрашивается:
> 1) Можно ли как-то оптимизировать запрос, указав, что nn-номера уникальны и почти упорядочены, и что не надо шерстить всю базу зазря? (Подозреваю, что nn-столбцы надо сделать индексированными, но вот как?)
>
> 2) Думаю, что самой лучшей оптимизацией было бы единовременное слияние подтаблиц в РЕАЛЬНУЮ 250-столбцовую и потом запуск запросов уже по ней. Только вот кто бы мне подсказал правильную команду, которую надо кинуть в MySQL для проведения такого дела... А то я пока пользую БД только на чтение (и для моей работы мне больше и не надо) и совершенно не ориентируюсь в "data modify"-командах SQL.
>
> Заранее спасибо всем, кто соберется помочь. =)
>


From: Varravann - 21/10/2008 - 13:05:25
Subject:Re: Слияние таблиц, JOIN, тормоза MySQL
-----------------
> 1. А не плохо былобы посмотреть на структуру таблиц. Указан ли первичный ключ для поля nn в этих таблицах.

С этим уже частично разобрался: http://www.sql.ru/forum/actualthread.aspx?tid=606560

> 2. А с другой стороны вы нехило так тащите на клиента 600000 записей (по вашим данным это почти 1Гиг данных!). На кой ляд они вам там нужны. Надо все-таки их как-то на сервере обработать. И тут никто вам не поможет. Вы попробуйте просто скопировать 1 гиг с одного места на другое просто два файла.

Ну, на самом деле там делается выборка с WHERE, ограничивающая количество вынимаемых записей до 150К. Но все равно да, не сахар. А цель - кластерный анализ этих данных, который внутри SQL все равно не сделать.


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

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

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
40669



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |