[前][次][番号順一覧][スレッド一覧]

mysql:14336

From: "T.Hirotsu" <"T.Hirotsu" <hirotsu@xxxxxxxxxx>>
Date: Sat, 12 Jan 2008 16:23:15 +0900
Subject: [mysql 14336] Re: 【Q】関連するテーブルは異なるデータベース上にあっても良いのでしょうか?

こんにちは、広津です。

「XXが出来る」と「XXでやりたい事が出来る」あるいは「XXでやりたい事
を実現したのが使える」は別物ではないかと。(^^;

複数データベースの複数テーブルを、あるクライアントから単純に扱えるか否か、
というご質問でしたら、答えは扱えます。

扱うデータベースへの接続をそれぞれ作ってやれば、別に MySQL に限ったこと
ではなく、PostgreSQL や Oracle、Microsoft Jet などが混在していても問題
ありません。

一方、それらのテーブルの Join は、MySQL では接続ごとにその接続から扱える
テーブル間でしか出来ません。
つまり、最低、MySQL サーバーは同じである必要があります。

Federated は使ったことがありませんのでレビューを読んだだけですが、物理的
には 1 つのサーバーにあるデータベースの部分集合へ、複数サーバーを通して
それぞれ接続するというもののようで、Akiyama さんのお書きになっている、
「複数のデータベース → まとめて 1 つの視点」とは逆で、これは、
「1 つのデータベース → 複数の視点」ではないかと思います。(?)

トランザクションや権限の制御も同じです。
基本的に、接続ごとにしかコントロールできません。
5.0.3 から(?)は分散型トランザクションが導入されましたが、例外検査の実装が
まだまだのような、、、(^^;


ところで、では、複数サーバー間の Join もトランザクションも力技で実現でき
ないか、というとそれは不可能ではありません。
(整合性や速度に満足できるかどうかは別の問題)

一般的には、テーブルやデータベースを分散すればするほど、同期や整合性保持
のコストが上がります。

結局のところ、データベースの設計で大切なのは、XXが出来るか出来ないか
というより、XXでやりたい事とXXを実現するコストをどこでトレードオフするか、
という視点ではないかと、、、


文章から察するに、現在のシステムを Access から MySQL へ移行するという案件に
おいて、Access のリンク機能と同じようなことが MySQL で出来れば、最も工程を
かけずに移行できる、というのがことの発端だと思いますが、だとすれば、私でしたら
最初に考えるのが、Access で複数あるデータベースを、MySQL では 1 つのデータ
ベースにぶち込んでしまう、ということです。(^^;
(もちろん、システムを知りませんので、まず頭に浮かぶ、ということです)


[前][次][番号順一覧][スレッド一覧]

     14333 2008-01-11 22:36 [秋山満邦 <manpou@xxx] 【Q】関連するテーブルは異なるデータベース上にあっても良いのでしょうか?
     14334 2008-01-12 13:30 ┣["日野洋一郎" <hino@x]                                       
     14335 2008-01-12 13:48 ┃┗["yusuke ito" <ito.ys]                                     
     14337 2008-01-12 18:35 ┃ ┗["日野洋一郎" <hino@x]                                   
->   14336 2008-01-12 16:23 ┣["T.Hirotsu" <hirotsu]                                       
     14338 2008-01-13 10:36 ┗[秋山満邦 <manpou@xxx]                                       
     14339 2008-01-13 19:49  ┗["T.Hirotsu" <hirotsu]                                     
     14341 2008-01-14 00:50   ┗[秋山満邦 <manpou@xxx]