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) совсем не возвращает.
Хотя они есть.
Помогите пожалуйста кто чем может.
Заранее спасибо.
Есть таблица "рабочие". Имеет более 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) совсем не возвращает.
Хотя они есть.
Помогите пожалуйста кто чем может.
Заранее спасибо.