Наиболее оптимальный запрос

Статус
Закрыто для дальнейших ответов.

swordholder

Новичок
Регистрация
18.12.2008
Сообщения
1
Есть база MySQL 5.0.51

Есть таблица "рабочие". Имеет более 1 000 000 записей

CREATE TABLE `rabochie` (
`id` int(11) unsigned NOT NULL auto_increment,
`full_name` varchar(255) ,
...
...
PRIMARY KEY (`id`),
) ;

Также есть 100 таблиц связанный с таблицей рабочие.

CREATE TABLE `data_1` (
`rabochiy_id` int(11) ,
`data` text character set utf8
) ;
CREATE TABLE `data_2` (
`rabochiy_id` int(11) ,
`data` text character set utf8
) ;
..... и так далее

Таблицы data_x связаны с таблицей рабочие rabochiy.id=data_x.rabochiy_id.

Мне нужно список всех рабочих вместе с их данными со всех таблиц наиболее оптимальным способом вытащить. На php.

Каждая запись в таблице "рабочие" может иметь сколько угодно связанных с ним записей в любом или во всех таблицах data_x (data_1,data_2, data_3, ...)

И теперь вопрос: Как мне с наименьшей нагрузкой на сервер MySQL и наименьшим количеством запросов вытащить все данные с таблицы "рабочие" и все связанные записи с таблиц data_x.

Стоит ли все данные со всех таблиц скинуть на массивы и потом от туда связанно вытаскивать или же все таки лучше создать один длинный join query ?

я пишу

SELECT *
FROM ((( rabochie
LEFT OUTER JOIN data_1 ON rabochie.id=data_1.rabochiy_id)
LEFT OUTER JOIN data_2 ON rabochie.id=data_2.rabochiy_id)
LEFT OUTER JOIN data_3 ON rabochie.id=data_3.rabochiy_id)

а MySQL мне возвращает данные только с последней data_3 таблицы (кроме самой таблицы rabochie)
То есть данных с других таблиц (data_1, data_2) совсем не возвращает.
Хотя они есть.
Помогите пожалуйста кто чем может.


Заранее спасибо.
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
Код:
SELECT rabochie.*,data_1.*,data_2.*,data_3.*
FROM  rabochie
LEFT JOIN data_1 ON rabochie.id=data_1.rabochiy_id
LEFT JOIN data_2 ON rabochie.id=data_2.rabochiy_id
LEFT JOIN data_3 ON rabochie.id=data_3.rabochiy_id
как то так по идее
 
H

Hiella

Guest
конструкция типа

Код:select from table1, table2, ... where ...неоптимальна т.к. у меня таблиц около тысячи

я понимаю если бы поля каждой таблицы отличались, но в том то и дело что во всех таблицах они одинаковы, т.е. каждая следующая таблица является продолжением предыдущей. а сводить их в единую таблицу не очень удобно и не очень наглядно выйдет...
 

trueW3C

Поклонник Yii
Регистрация
04.03.2009
Сообщения
847
Вы на даты смотрите)
 
Статус
Закрыто для дальнейших ответов.
Верх Низ