dummy_crud_database/README.md

1.5 KiB

dummy crud database

Description

I always wanted to make simple database so I made one only for educational purposes inspired by this javaworld article

It can store any binary data. Implemented in python in under 250 lines of code.
Probably can be shorter but it's just a gig.

Supports

  • insert data
  • update data
  • delete data
  • read data by index
  • read all data

For simplicity data and index files is append only.
Index file is loaded and stored as dictionary in memory on start.

Dependencies

Depends on psutil to display pid statistics when running main file.

Run

I tested it using python3.7 but it can be easily converted to any python version or any language

By default it :

  • removes 2 files test.db, test.index if those files exists
  • create 2 files test.db, test.index
  • writes and index 100k random string with characters between (100, 1000) to test.db file
  • reads 100k random elements from file
  • performs read of object at position 2
  • remove object from position 3
  • update object at position 2
python dummy_crud_database.py 

Output

write elements 100000 in 70.1026759147644
read elements 100000 in 3.7399983406066895
size :  100000
database fsize :  53.91 MB
index fsize :  0.76 MB
pid memory usage :  25.61 MB

So it looks like it can do 1,4k inserts per second and around 26k reads per second on my computer (write time is including generation of random data).