The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"MySQL агрегация результатов запроса из двух баз."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"MySQL агрегация результатов запроса из двух баз."  
Сообщение от qqqq on 18-Июн-07, 20:20 
Возникла такая проблема:

Есть 2 совершенно идентичные по структуре базы: текущая и архивная. В текущей базе находятся наиболее последня информация, в архивной - то, что уже используется редко. Данные обеих баз - не пересекаются. То есть во врема переноса в архив - в текущей безе соотвествующие записи удаляются.

Есть запросы (для репортов) которым необходимо данные из обеих баз. Если сделать простое оъединение (напр. для запросов содержащих COUNT, GROUP), то могут получиться дублированные строки. Как их объединить - пока хз...

Есть мысль - предопределить запросы которые могут идти к обеим базам, и описать правила аггрегирования результатов. Возможно придётся использовать временные таблицы... Но этот вариант не очень прозрачен, т.к. все возможные запросы нужно определять.

Немного поясню на примере:

Да нет. Прямой Union тут не подойдёт, так как запросы к разным базам.
Тут нужно внешний инструмент, что-то типа DBI:Multiplex (правда он не
умеет собирать результаты запросов к разным таблицам)

Немного на пальцах:

Есть таблица test (name char, trans_dat date).
В текущей базе:
name_1  01-01-2007
name_2  01-02-2007

В архиве
name_1  01-01-2006
name_1  01-02-2006
name_2  01-02-2006

Если мы рассплитуем оба сервера запрос типа
SELECT COUNT(*), name FROM test GROUP BY name
и объединим результат - получим:

1   name_1   ; из текущей базы
1   name_2   ;
2   name_1   ; из архива
1   name_2   ;

А дожно быть:

3   name_1
2   name_2

Возможно кто-то сталкивался с подобной проблемой, и существуют ли решения для аггрегирования результатов из 2-х идентичных баз?

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "MySQL агрегация результатов запроса из двух баз."  
Сообщение от ws email(??) on 18-Июн-07, 20:35 
На мой взгляд должно решаться через создание временной таблицы, в которую заносятся результаты запросов к разным БД и после этого производить окончательный запрос к этой таблице.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "MySQL агрегация результатов запроса из двух баз."  
Сообщение от qqqq on 18-Июн-07, 20:43 
>На мой взгляд должно решаться через создание временной таблицы, в которую заносятся
>результаты запросов к разным БД и после этого производить окончательный запрос
>к этой таблице.

да, похоже это пока единственно-доступный вариант...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру