Возьмем, допустим, мускул.
Я так полагаю, что при запуске, он грузит всю базу в оперативку и дальше с ней выполняются какие-то действия, - чтение, запись, удаление...
Или он подгружает какую-то часть базы в зависимости от запроса ?
Это важно, но больше меня интересует другое - в каком виде хранятся данные на диске и если все висит в оперативке, то как часто измененные данные перезаписываются на диск ? Либо же если база подгружает в оперативку нужные куски, то за счет чего обеспечивается скорость поиска по файловой системе и в самом файле ?
Я предполагаю, что там xml и база бегает по фалу известными заранее смещениями, но в таком случае нужны еще файлы, которые будут хранить сами смещения.
С чего собственно интерес к устройству бд - во-первых просто интересно с чем постоянно работаю, во-вторых, я на днях копался с С++ и пришлось озаботиться скоростью поиска по двусвязным спискам, ну и одно за другое, пришла идея реализации бд фиксированной архитектуры, но вроде как довольно шустрой. Эдакий велосипедик

Просветите пожалуйста!