問題タブ [federated-table]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1690 参照

php - PHPスクリプトはMySqlトリガーが完了するのを待つ必要がありますか?

データベースはMySQLです。新しい評価が配置されるたびに集計評価テーブルを更新するトリガーを実装しようとしています。次に、トリガーの実装を検討している他の同様のユースケースがいくつかあります。

これらのトリガーは、フェデレーションテーブルを更新している可能性があります。だから私の質問は: 新しい評価を挿入するphpスクリプトがphpスクリプトが完了する前にトリガーが完了するのを待つ必要があるかどうかです。

PS:トリガーはロジックを配置するのは良い考えではないことを理解しています。また、 RabbitMQなどのメッセージングを使用したほうがよいかもしれません。

0 投票する
1 に答える
586 参照

design-patterns - フェデレーション(水平分割)データベースの主キーパターン

これが重複している場合は、事前にお詫び申し上げます。何を検索すればよいか正確にはわかりません。

最近、チャネル9で、SQLAzureのデータベースフェデレーションに関するこの気の利いたビデオを視聴しました。最初は、ID列がSQL Azureフェデレーションでサポートされていないことに驚きましたが、それは理にかなっています。2つ(またはそれ以上)のデータベースに分割されたテーブルがあり、それらのID増分値を共有する方法がない場合、2つ(またはそれ以上)のエンティティが同じ主キーを共有することになります。

ビデオでは、この問題に対処する方法について軽く触れ、整数ベースのID列の代わりにPKにGuidのようなものを使用することに言及しました。少なくともMSSQLはデフォルトでPKにクラスター化インデックスを作成することを知っています。また、Guid(またはuniqueidentifier)タイプにクラスター化インデックスを作成するのは良くありません。私は決してリレーショナルの専門家ではありませんが、PKベースのルックアップの整数ベースのタイプと比較すると、Guidのパフォーマンスが低下するとも思います。

それで、これは私に不思議に思いました、水平連合データベースの整数ベースのPKパターンはどのように見えるでしょうか?古い学校のEJBを作成し、主キーの整数を生成する必要があったとき、rdbmsID/自動インクリメント機能を置き換えるために別のシーケンスルックアップテーブルが必要でした。当時、EJBの他の多くのものがあったので、これは苦痛だったことを思い出します。

水平方向に連合されたデータベーステーブルで主キーを割り当てるために一般的に受け入れられているパターンは何ですか?現在の知識を考えると、パフォーマンスの低下のためにGuidから離れ、開発コストと複雑さの追加(主に開発コスト)のためにシーケンシャルルックアップインデックスから離れます。私は何に傾くべきですか?

0 投票する
1 に答える
98 参照

azure-sql-database - SQL Server テーブルを SQL Azure フェデレーションに移植する

Column1 と Column2 の一意性の検証や ID の主キー制約を失わずに、次のテーブルを SQL Azure フェデレーションに移植するにはどうすればよいでしょうか?

0 投票する
1 に答える
674 参照

azure - SQL Azure フェデレーション分割の設計とクエリ

Microsoft SQL Azure フェデレーションに関していくつか質問があります。

1) アクティブなデータベースにフェデレーテッド DB を作成できますか? または事前にフェデレーションをデプロイする必要がありますか?

2) フェデレーションのクエリ方法に準拠するために SQL クエリを変更する必要がありますか? または、1 つの SQL Server データベースに対して作業していたので、通常のクエリを引き続き使用できますか?

3) データベースを分割してしばらくすると、シャードの 1 つが非常にビジーでほとんどいっぱいになっていることがわかりました。フェデレーションを使用してこの問題にどのように対処すればよいですか? - 90% 使用されている単一の連合テーブルのみを分割する必要がありますか?それとも、より広い範囲を使用して分割戦略を再作成する必要がありますか? 問題は、1 人の特定のユーザーが非常にアクティブである可能性があることです。したがって、1 人の非常にアクティブな連合テーブル/ユーザーのために連合戦略を再作成する必要がないことを確認するために、どの戦略を使用しますか?

4)異なる主キーで分割したい異なるテーブルがある場合、シャーディングはどのように機能しますか。例えば:

私が理解していることから:

【ブログ】

blog_id

情報

[ブログ_投稿]

ID

blog_id

投稿内容

したがって、0 ~ 1000、1 ~ 2001 の blog_id に基づいてシャードすることにした場合、2 つのフェデレーション テーブルが作成されます。しかし、blog_id 以外の異なるキーを持つテーブルをさらに追加すると、フェデレーション テーブルがどれだけ増えますか?

ありがとう

0 投票する
2 に答える
67 参照

azure-sql-database - Azure SQL フェデレーションを作成すると、INT/LONGINT の最後の桁が切り捨てられますか?

テーブルにorCustId型の主キー ( ) があるとします。が奇数か偶数かに応じて、このテーブルを連合テーブルに分割したいと考えています。すなわちintlongintOrderId

Federated 'primary key' =(Fed_key, CustId)ここOrderIdで、タイプはintor longintandですFed_key= 0CustId==even の1場合、CustId==odd の場合。

例えば:

これにより、基本的に 2 つのフェデレーション メンバー (別名パーティション) が得られます。後で、追加のパーティションのために Fed_key を (1,3,5)、(2,4,6)、および (7,8,9,0) にグループ化することがあります。5 つ以上のパーティションが必要になるとは考えていません。

質問: 上記のロジックを Azure SQL に表現​​するにはどうすればよいですか? フェデレーションの作成中またはフェデレーション テーブルの作成中に行う必要があると思います。

0 投票する
2 に答える
764 参照

sql-server - SQL Azure - フェデレーションされているテーブルを特定する

私は SQL Azure を初めて使用し、アプリケーション開発の初期段階にあるため、スキーマは頻繁に変更されています。ルートデータベースを作成し、それに対して次のようにクエリを実行することから始めました

そして、それはほとんどの場合、かなりうまくいきました。Stuffフェデレーション内の多くの同様のテーブルの 1 つにすぎません (本名でもありません)。

さて、私が言ったように、私のスキーマは非常に頻繁に変更されるので、スキーマを変更するには、VS2012 でフェデレーション メンバーに接続し、テーブルを右クリックして [コードの表示] を選択すると、次のように表示されます。

唯一の違いは、右括弧の後にFEDERATED ON (cid=ClientId);. これは、私がすでに特定のフェデレーション メンバーに接続しているため、その情報が既にわかっているためだと思いました。奇妙な部分は、それに対して .net コードを実行しようとしたときです。アプリから次のコードを実行します。

そして、ダッパーを使用します:

しかし、次のエラーメッセージが表示されます。

うーん?私のテーブルはフェデレーションされています。覚えていますか? また、同様のコードは他のテーブルでもうまく機能しました。奇妙なことStuffは、そのスキーマが最近大幅に変更されたため、VS2012 でフェデレーション メンバーに直接接続し、そこで変更を加えると、どうにかしてフェデレーション テーブルではなくなったように思えます (テーブルには 3 種類のテーブルがあります)。フェデレーション データベース: http://convective.wordpress.com/2012/03/05/introduction-to-sql-azure-federations/ )。

だから、私は開発の初期段階なので、重要なことは何もないStuffので、先に進んでその CREATE TABLE コードをコピーし、そのメンバーから完全に削除し、ルートデータベースに戻って、リストされたコードを再実行しました上記FEDERATED ON (ClientId=cid)ステートメントを再度使用して、アプリから挿入ステートメントを再実行すると、うまく機能しました!!

したがって、明らかに何かが起こって、テーブルが「フェデレーション」されなくなりました。最後に、私の質問は非常に単純です。

  • ルート データベースまたはフェデレーション メンバーで実行して、フェデレーションされているテーブルとそうでないテーブルを確認できるクエリはありますか?
  • また、かつてフェデレートされていたテーブルがもうフェデレートされていない理由を誰か教えてもらえますか? 明らかに、遠い将来にスキーマを変更する可能性があり、テーブルを削除して最初からやり直すことはできないため、何が間違っているのかを知っておくとよいでしょう。
0 投票する
1 に答える
287 参照

mysql - ベスト プラクティス、アプリケーション アーキテクチャ MySQL

4 つのアプリケーションを統合するシステムを設計する必要があります。これらのアプリケーションは多くの情報を共有します (現在のシステムでは、情報はデータベースで重複しています)。私の最初のアイデアは、これらすべての重複とシステム間の手動同期を回避するために、分散データベース システムを使用することでした。ほとんどすべてを最初から実装する必要があると思います (データベースはこれらのシステムの心臓部であるため)。時間/お金/実装の組み合わせが最善の解決策であるかどうかはわかりません。

私が使用したいと考えているテクノロジー: MySQL フェデレーテッド エンジン (データベースへの分散を実現するため) CakePHP: 2/4 のアプリケーションは CakePHP にあるため、同じ言語を維持します。Python: 1 つのアプリケーションは Python にあります Java: 1 つのアプリケーションは Java にあります

上記の言語とデータベース エンジンに問題はありますか?

アイデア、提案はありますか?どんなフィードバックでも大歓迎です!

0 投票する
1 に答える
142 参照

mysql - 一元化された安全な方法で MySQL フェデレーション テーブルを使用する場合、リモート サーバーの資格情報を保存します。

ドキュメントに記載されているように、MySQL 連合テーブルを使用したいと思います: https://dev.mysql.com/doc/refman/5.0/en/federated-use.html

ただし、リモート サーバーの資格情報を、テーブルごとに平文のパスワードで繰り返す必要はありません。

すべての連合テーブルに同じ資格情報を使用する方法はありますか? そして、この資格情報を安全な方法で保存するには?