データをディスクに保存する方法は、I/O サービスの合計時間に影響します。
# 各トラックが 10 個の物理ブロックに分割されており、各ブロックに 1 つの論理レコードが格納されていると仮定します。論理レコード R1、R2、...、R10 は同じトラックに保存されます。記録の順序は次の表に示すとおりです: (推奨学習:
Web フロントエンド ビデオ チュートリアル )
ディスクの回転速度が 20ms/cycle で、ヘッドが現在 R1 の先頭にあるとします。システムが単一のバッファを使用してこれらのレコードを順次処理し、各レコードの処理時間が 4 ミリ秒の場合、これら 10 個のレコードの処理にかかる最大時間は 204 ミリ秒です。情報ストレージが最適化および分散されている場合、10 個のレコードの処理にかかる最小時間は 204 ミリ秒です。は60ミリ秒です。 まず、ディスク速度が 20 ミリ秒/週であることから、レコードの読み取りに 2 ミリ秒かかることがわかります。 注目すべき点は次のとおりです: レコードを処理するための前提条件は、レコードを読み出すことです。最初のレコードを処理する場合、最初にレコードを読み取ってから処理する必要があるため、R1 の処理に必要な時間は 2ms ~ 4ms になります。R1 を処理するとき、ヘッドは R4 の位置まで回転しています。このとき、調整する必要があります。 R2 の位置は R5、R6、R7、R8、R9、R10、R1 を経由する必要があり、16ms かかります。さらに、R2 の読み取りに 2ms、データの処理に 4ms かかります。R2 の合計処理時間は、 22msであること。 類推すると、これら 10 件のレコードの処理時間は 2 4 (16 2 4) × 9 = 204ms上記の分析から、ほとんどの時間がかかることがわかります。磁気ヘッドを戻す過程で消費されます。 この時間を短縮するために、配置順序を最適化することができます。最適化された配置順序は、R1、R8、R5、R2、R9、R6、R3、R10、R7、R4 になります。このようにしてR1を処理するとヘッドはR2の位置に到達します。 R2を直接読み込んでR2を処理し、R2処理後、ヘッドは再びR3の位置に到達します。類推すると、各レコードの読み取りおよび処理時間は 2ms 4ms=6ms となるため、合計時間は (2 4) × 10 = 60ms となります。以上がディスクに保存されているデータの配置はどのような影響を及ぼしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。