ホームページ  >  記事  >  バックエンド開発  >  データをクエリするときにデータが N 項目より大きいかどうかを判断するにはどうすればよいですか?

データをクエリするときにデータが N 項目より大きいかどうかを判断するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-12-05 13:44:071352ブラウズ

たとえば、データベースに 300,000 個のデータがあり、条件に従ってクエリに一致するデータが 30,000 個あるとします。一度に取得するデータが多すぎると、毎回 10,000 個ずつ取得する必要があります。これは単なる例です。どのように実装すればよいでしょうか。再帰を使用しますか?
教えてください! ! !
また、2 つのテーブルのデータが結合された場合、特定のフィールドに従って並べ替える方法はありますか?

返信内容:

たとえば、データベースに 300,000 個のデータがあり、条件に従ってクエリに一致するデータが 30,000 個あるとします。一度に取得するデータが多すぎると、毎回 10,000 個ずつ取得する必要があります。これは単なる例です。どのように実装すればよいでしょうか。再帰を使用しますか?
教えてください! ! !
また、2 つのテーブルのデータが結合された場合、特定のフィールドに従って並べ替える方法はありますか?

ご招待いただきありがとうございます。現在、大量のデータを含む結果セットの処理には次の 2 つの方法を使用しています。これら 2 つの処理方法を使用する目的は、第 1 に、データ セットを取得する際の帯域幅リソースの占有を削減すること、第 2 に、結果セットを処理する際のプログラムのメモリ使用量を削減することです。

  1. ブロックは質問のアイデアです

リーリー
  1. カーソル、行ごとに読み取って返す

リーリー

個人的には、次のブロックを検索する場合は where条件而不是直接limit 100000 , 100000 を使用することをお勧めします。
2 つの違いの例は次のとおりです:

リーリー

SQL ステートメントを通じて直接実行でき、バックグラウンド処理は必要ありません。指定したフィールドに従って並べ替えることができます。 order by

結合テーブルクエリ

例: SELECT a.* from tableA as a, tableB as b where a.id = b.id order by a.id desc limit 0,10000";


最初にテーブルの where 条件から count(1) を選択できます。合計でどれくらいのデータがあるかを確認します。数値が N より大きい場合、

select * from table limit m,n を使用して、ページングで

2 つのテーブルをクエリできます。
select * from table1 Union all select * form table2 order特定のフィールドによる。クエリ内の列の数は同じである必要があることに注意してください。ベストタイプも同様ですselect * from table limit m,n 分页查询
2张表的话就
select * from table1 union all select * form table2 order by 某个字段

テーブル ID が均等に分散されていると仮定すると、ID 間隔を使用してセグメント内のデータをクエリできます

リーリー

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。