RDB初心者なのですが、疑問があるので詳しい方教えていただけないでしょうか?

テーブルのサイズが大きくなると重くなるので、キーのハッシュ値などで、
複数のテーブルにレコードを分散させておき高速化する、パーティショニングなる
技術があるらしいと聞きました。


データベースエンジンは高速に検索するための良いアルゴリズムを
持っているものと想像していたのですが、
この程度の最適化すらされていないということなのでしょうか?

それとも、物理的に別のストレージに割り当てることによって、ストレージのアク
セスを並列に行うことによる高速化を狙っているのでしょうか?

長ったらしい質問で申し訳ありません。一般的なデータベースのボトルネック
がどこにあるかなどの感覚がよくわかっていないもので。