Die Datenbank wird nie ganz im RAM gespeichert. Wenn ein Wert in die Datenbank geschrieben wird (über eine Transaktion), dann muss diese Transaktion garantiert sein, deshalb wird sie auch ohne Umwege über den Cache, direkt auf die Festplatte geschrieben.
Der RAM wird verhältnismässig "unerwartet" eingesetzt. Zum Beispiel bei temporären Tabellen (lesen) oder wenn der Query Planner findet, dass er ein kleines Set an Tupeln sortieren will, dann geschieht das im RAM (bis zu einer gewissen Grösse).
Auch beim Lesen kommt der RAM nicht wirklich zum Zug, da man schlecht cachen kann. Wenn eine andere Transaktion gecachte Daten verändert, sind diese im Cache nicht mehr gültig. Es ist zwar möglich sowas zu lesen, man spricht dann von einem "dirty read", aber wirklich gut ist das nicht, wenn öfters in die Datenbank geschrieben wird.
Datenbanken sind darauf ausgelegt, möglichst viele Anfragen gleichzeitig zu beantworten und wenn alles immer im RAM liegt, geht der mit der Zeit aus, dann lahmt alles. Stell dir eine Abfrage vor, die einen Sortierspeicheraufwand von ~ 2 MB hat (kommt schnell mal vor) und dann nebenbei noch 1000 Connections ... rechne!

Eine Datenbank bietet interessante Möglichkeiten, Festplatten zu testen, aber bei der Auswertung muss man sehr vorsichtig sein.