PostgreSQL などの大規模なデータベースから行をランダムに選択することは、パフォーマンスに負荷がかかる作業になる可能性があります。この記事では、この目標を効率的に達成するための 2 つの一般的な方法を検討し、それぞれの長所と短所について説明します。
方法 1: ランダムな値でフィルターする
select * from table where random() < 0.01;
このメソッドは行をランダムに並べ替えてから、しきい値に基づいてフィルター処理します。ただし、テーブル全体のスキャンが必要であり、大規模なデータ セットの場合は時間がかかる可能性があります。
方法 2: ランダムな値で並べ替え、結果を制限する
select * from table order by random() limit 1000;
このメソッドは行をランダムに並べ替えて、上位 n 行を選択します。最初の方法よりもパフォーマンスは向上しますが、制限があります。行グループ内の行が多すぎると、ランダムなサブセットを選択できない可能性があります。
大規模なデータセット向けの最適化ソリューション
多数の行 (この例では 5 億行など) を持つテーブルの場合、次のアプローチにより最適化されたソリューションが提供されます。
WITH params AS ( SELECT 1 AS min_id, -- 最小ID(小于等于当前最小ID) 5100000 AS id_span -- 四舍五入。(max_id - min_id + buffer) ) SELECT * FROM ( SELECT p.min_id + trunc(random() * p.id_span)::integer AS id FROM params p , generate_series(1, 1100) g -- 1000 + buffer GROUP BY 1 -- 去除重复项 ) r JOIN big USING (id) LIMIT 1000; -- 去除多余项このクエリは、効率的な取得のために ID 列のインデックスを利用します。 ID 空間内で一連の乱数を生成し、ID が一意であることを確認し、データをメイン テーブルと結合して必要な行数を選択します。
その他の考慮事項
境界クエリ:
乱数生成時に大きなバッファが必要になるのを避けるために、テーブル ID 列のギャップが比較的少ないことが重要です。
具体化されたビュー:
ランダム データに繰り返しアクセスする必要がある場合は、マテリアライズド ビューを作成してパフォーマンスを向上させることを検討してください。
PostgreSQL 9.5 のテーブルサンプルシステム:
PostgreSQL 9.5 で導入されたこの最適化手法により、指定された割合の行を高速にサンプリングできます。
以上が大規模な PostgreSQL テーブルからランダムな行を効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

mysqlblobshavelimits:tinyblob(255bytes)、blob(65,535bytes)、mediumblob(16,777,215bytes)、andlongblob(4,294,967,295bytes).tousebl難易度:1)PROFFORMANCESANDSTORERGEBLOBSEXTERNALLY;

MySQLでユーザーの作成を自動化するための最良のツールとテクノロジーには、次のものがあります。1。MySQLWorkBench、中小サイズの環境に適した、使いやすいがリソース消費量が高い。 2。アンシブル、マルチサーバー環境に適した、シンプルだが急な学習曲線。 3.カスタムPythonスクリプト、柔軟性がありますが、スクリプトセキュリティを確保する必要があります。 4。大規模な環境に適した人形とシェフ、複雑ですがスケーラブル。選択する際には、スケール、学習曲線、統合のニーズを考慮する必要があります。

はい、youcansearchinsideablobinmysqlusingspecifictechniques.1)converttheblobtoautf-8stringwithconvert function andsearchusinglike.2)

mysqloffersvariousstringdatypes:1)charfofixed-lengthstrings、italforconsentlengtalikecountrycodes; 2)varcharforvariable-lengthstrings、適切なForfieldslikenames;

tomastermysqlblobs、soflowthesesteps:1)shoseetheapsosupturateblobtype(tinyblob、blob、mediumblob、longblob)basedOndatasize.2)insertDatausingload_fileforefficiency.3)storefilereferenceinsinsteadoffilestoimpeperformance.4)

blobdatatypesinmysqlareusedlarginglaredatalikeimagesorudio.1)useblobtypes(tinyblobtolongblob)Basedatasizeneeds。 2)storeblobsin perplate petooptimize performance.3)scondididididididididersxternalストレージBlob Romanaデータベースindimprovebackupe

toadduserstomysqlfromthecommandline、loginasroot、thenusecreateuser'username '@' host'ident'ident'identifidedby'password '; tocreateanewuser.grantpermissions with grantpermissions with grantalgegesondatabase

mysqlofferseightStringDatatypes:char、varchar、binary、varbinary、blob、text、enum、andset.1)charisfixed-length、yealforconsistent datalikecountrycodes.2)varcharisvariable length、efficational forvaryingdatalikenames.3)binaryandvanterbinarydata a similati


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール
