検索

ホームページ  >  に質問  >  本文

mysql - 分库后如果显示各分库下合并的数据

B2C电商,假如有用户表,订单表,商品表,针对用户ID,进行hash后,分库,假设分为A,B,C,D四个库,相应的不同用户下的订单也存放在对应的A,B,C,D库里,商品表做冗余存放在所有库里,
那如果要在后台订单里看到所有的订单,这时候要怎么处理,把A,B,C,D的订单合并起来再排序?这套规则有组件可以实现吗?还是要自己写代码?

PHP中文网PHP中文网2873日前705

全員に返信(3)返信します

  • 高洛峰

    高洛峰2017-04-17 14:51:14

    順序テーブルの構造は同じであり、SQL ステートメントのユニオン クエリで処理してから、ターミナルで処理されたデータを直接取得することをお勧めします。メモリを消費します

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 14:51:14

    サブライブラリとサブテーブル自体は諸刃の剣です。1 冊のボリュームが 10 冊または数百万冊になる場合、今すぐ分割することはお勧めできません。
    ご指摘のクエリ条件について、需要が非常に大きく、クエリ時間が非常に長い場合は、別のデータベースを構築し、以前のサブデータベースからデータを要約することをお勧めします(クエリに必要なデータのみが要約されます) )、bin ログを読み取って ETL を書き込むだけで、ニーズを解決できることに加えて、統計の分析が非常に便利であるという利点もあります。
    または、Alibaba のオープンソース ミドルウェアを直接使用して、データベースとビジネス プログラムを分離することもできます。

    返事
    0
  • PHPz

    PHPz2017-04-17 14:51:14

    ユーザー ディメンションに従ってデータベースとテーブルを分割する場合は、注文ディメンションに従ってデータベースとテーブルを再度分割する必要があるため、データの冗長性が生じます。

    返事
    0
  • キャンセル返事