blockchain always gets corrupt
My hardware is a Intel(R) Core(TM) i5 CPU 650  @ 3.20GHz, 8GB Ram and the blockchain is stored on a ssd (is brand new). 
I try to run a full node, but I fail constantly to fetch the blockchain. I run alternately into 2 errors, but both of them leave me with a corrupt blockchain. And the annoying thing is... this happens not in the beginning, no this happens after hours of fetching the blockchain. 

1. error
there you see nothing in the monerod.log expect that the monerod service restarts all the time, but in the syslog I see

systemd[1]:Starting monerod.service - Monero Full Node (Mainnet)...
monerod[22204]: 2024-05-24 09:32:12.537#011I Monero 'Fluorine Fermi' (v0.18.3.3-release)
monerod[22204]: Forking to background...
systemd[1]: Started monerod.service - Monero Full Node (Mainnet).
kernel: [79627.129234] monerod[22219]: segfault at 7f93c514e000 ip 00007fb60f72be96 sp 00007f93deaf7cf8 error 6 in libc.so.6[7fb60f6af000+155000] likely on CPU 1 (core 2, socket 0)
kernel: [79627.129252] Code: 16 c0 48 29 ce 48 ff c7 48 01 fe 48 8d 54 11 c0 0f 1f 40 00 0f 10 0e 0f 10 56 10 0f 10 5e 20 0f 10 66 30 48 83 ee c0 0f 29 0f <0f> 29 57 10 0f 29 5f 20 0f 29 67 30 48 83 ef c0 48 39 fa 77 d5 0f
systemd[1]: monerod.service: Main process exited, code=killed, status=11/SEGV
systemd[1]: monerod.service: Failed with result 'signal'.
systemd[1]: monerod.service: Consumed 6.428s CPU time.

to repair the blockchain is not possible, if I start 
monerod --db-salvage --data-dir=/var/lib/monero/.bitmonero  it end with a
Segmentation fault

2. error
WARNING	blockchain.db.lmdb	src/blockchain_db/lmdb/db_lmdb.cpp:75	DB error attempting to fetch transaction index from hash 6e5e9c38659f05c4f3d1f55c1a802b1ff461a38e875210dbd11180487b1fd9c1: MDB_CORRUPTED: Located page was wrong type
ERROR	cn	src/cryptonote_core/cryptonote_core.cpp:1115	Exception at [core::handle_incoming_txs()], what=DB error attempting to fetch transaction index from hash 6e5e9c38659f05c4f3d1f55c1a802b1ff461a38e875210dbd11180487b1fd9c1: MDB_CORRUPTED: Located page was wrong type
WARNING	blockchain.db.lmdb	src/blockchain_db/lmdb/db_lmdb.cpp:75	DB error attempting to fetch block index from hashMDB_BAD_TXN: Transaction must abort, has a child, or is invalid
ERROR	blockchain	src/cryptonote_core/blockchain.cpp:4696	Exception at [add_new_block], what=DB error attempting to fetch block index from hashMDB_BAD_TXN: Transaction must abort, has a child, or is invalid
WARNING	blockchain.db.lmdb	src/blockchain_db/lmdb/db_lmdb.cpp:75	Failed to commit a transaction to the db: MDB_BAD_TXN: Transaction must abort, has a child, or is invalid
ERROR	blockchain	src/cryptonote_core/blockchain.cpp:4827	Exception in cleanup_handle_incoming_blocks: Failed to commit a transaction to the db: MDB_BAD_TXN: Transaction must abort, has a child, or is invalid
2024-05-24 10:13:17.980	[P2P9]	WARNING	blockchain.db.lmdb	src/blockchain_db/lmdb/db_lmdb.cpp:75	DB error attempting to fetch transaction index from hash 6e5e9c38659f05c4f3d1f55c1a802b1ff461a38e875210dbd11180487b1fd9c1: MDB_CORRUPTED: Located page was wrong type
ERROR	cn	src/cryptonote_core/cryptonote_core.cpp:1115	Exception at [core::handle_incoming_txs()], what=DB error attempting to fetch transaction index from hash 6e5e9c38659f05c4f3d1f55c1a802b1ff461a38e875210dbd11180487b1fd9c1: MDB_CORRUPTED: Located page was wrong type
WARNING	blockchain.db.lmdb	src/blockchain_db/lmdb/db_lmdb.cpp:75	DB error attempting to fetch block index from hashMDB_BAD_TXN: Transaction must abort, has a child, or is invalid
ERROR	blockchain	src/cryptonote_core/blockchain.cpp:4696	Exception at [add_new_block], what=DB error attempting to fetch block index from hashMDB_BAD_TXN: Transaction must abort, has a child, or is invalid
WARNING	blockchain.db.lmdb	src/blockchain_db/lmdb/db_lmdb.cpp:75	Failed to commit a transaction to the db: MDB_BAD_TXN: Transaction must abort, has a child, or is invalid
ERROR	blockchain	src/cryptonote_core/blockchain.cpp:4827	Exception in cleanup_handle_incoming_blocks: Failed to commit a transaction to the db: MDB_BAD_TXN: Transaction must abort, has a child, or is invalid

to repair the blockchain after this error occurred is also not possible.  there I see this error over and over again

I'm quite sure, there is something wrong with my hardware. (but I do not know, what in the moment) 
I have some questions about the blockchain.

Why is it necessary to declare the hole data block for corrupt? I mean it takes hours, in my case days or sometime weeks to download the blockchain.  How can a simple incident corrupt 100GB of data in a split of a second?

Why there are not some kind of anchor or recovery points, where the software could roll back, if an accident occurs?

Why must the data stored in one huge file? 

I mean, I'm not the only one who has a problems with a corrupt blockchain. And always the only advice I read is, delete the data.mdb and start from the beginning(if recovery not working, what it never does in my case). Think of all the wasted time and energy and this because of the terrible data store design.
 
