ランダムアクセス【random access】
概要

不連続な位置からデータを読み出す操作を「ランダムリード」(random read)、書き込む操作を「ランダムライト」(random write)という。ここでの「ランダム」とは、記録された並び順を考慮せず任意の位置を指定することを意味し、乱数を用いて無作為に次の位置を決定するという意味ではない。ただし性能評価の試験では、実際に乱数でアクセス先を決定する手法が用いられることもある。
対照的な方式に、データが並んだ順番に端から連続してアクセスする「シーケンシャルアクセス」(sequential access)がある。磁気テープのように目的の位置まで途中のデータを順にたどる必要がある装置ではこの方式が基本となる。一般に同じデータ量を処理する場合、不連続な位置への移動が発生するランダムアクセスの方が、連続してたどるシーケンシャルアクセスよりも処理に時間がかかる傾向がある。
ランダムとシーケンシャルの性能差は記憶媒体の種類によって異なる。ハードディスク(HDD)のような磁気ディスク装置では、磁気ヘッドを目的のトラックへ移動させる「シーク時間」や、目的のセクタがヘッド下まで回転してくるまでの「サーチ時間」(回転待ち時間)が発生するため、ランダムアクセスは苦手である。
一方、SSDなどのフラッシュメモリ装置や、メインメモリに用いられるRAM(DRAM)などの半導体記憶装置は機械的な可動部分を持たないため、HDDほど極端な速度低下は起きない。ただし、内部の制御回路の処理やデータ管理の単位、キャッシュメモリの仕組みなどの影響により、わずかにシーケンシャルアクセスの方が高速になる傾向が残ることもある。
なお、プログラム上のデータ構造に対するアクセスについてもランダムとシーケンシャルを対比する場合がある。配列のように要素がメモリ上に連続して配置された構造はランダムアクセスに向いており、添字を指定するだけで目的の要素へ即座に到達できる。一方、各要素が次の要素への位置情報を保持して連なる連結リストのような構造では、先頭から順にたどる必要があるためシーケンシャルアクセスが基本となる。データベースやファイルシステムでは、目的のデータを迅速に取得するために索引(インデックス)の仕組みが用いられ、高速にランダムアクセスできるようになっている。
関連用語
他の辞典等による「ランダムアクセス」の解説 (外部サイト)
- ウィキペディア「ランダムアクセス」
- Insider's Computer Dictionary「ランダム・アクセス」
- マンガで分かるプログラミング用語辞典「ランダムアクセス」
- Programming Place Plus 用語集「ランダムアクセス」
- Techopedia (英語)「Random Access」
- PC Magazine (英語)「random access」