For reference, on my laptop (Dell Latitude 7390 with an i7-8650U CPU):
* Bulk inserts run at ~600,000/second (up from 125,000).
* Bulk extracts run at ~660,000/second while in RAM (up from 30,000) and ~220,000/second from disk (up from 20,000).
* Bulk updates run at ~700,000/second in RAM dropping to ~300,000 from disk (up from 110,000 dropping to 60,000).
* Random reads run at ~800,000/second in RAM dropping to ~20,000 from disk (up from 220,000 dropping to 11,000).
* Random mixed run at ~400,000/second in RAM dropping to ~10,000 from disk (up from 30,000 dropping to 4,000).
* Hot-spot reads run at ~800,000/second in RAM dropping to ~500,000 from disk (up from 220,000 dropping to 60,000).
Note that "in RAM" means "the dataset fits into RAM" -- in all cases data is durably stored to disk.
There is almost certainly room for improvement; I haven't done extensive profiling yet.