Предположим, я должен был написать свою собственную базу данных на c ++ и предположить, что я бы использовал двоичное дерево или хеш-карту в качестве базовой структуры данных.Как бы я справился с обновлениями этой структуры данных?
1) Должен ли я сначала создать двоичное дерево, а затем каким-то образом сохранить его на диске?И каждый раз, когда данные должны быть обновлены, мне нужно открыть этот файл и обновить его?Не будет ли это дорогостоящей операцией?
2) Есть ли способ напрямую работать с двоичным деревом, не загружая его в память и затем сохраняя снова?
3) Как SQLite и Mysql справляются с этим?
4) Мой главный вопрос: как базы данных сохраняют огромные объемы данных и одновременно обновляют их, не открывая и не закрывая файлкаждый раз.