Новости
Документация
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



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.

Заранее спасибо всем, кто соберется помочь. =)


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

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

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



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