Skip to content

Latest commit

 

History

History
56 lines (42 loc) · 1.38 KB

File metadata and controls

56 lines (42 loc) · 1.38 KB

go-practice-database

A clean database client implementation:

  • implementing migrations
  • generating CRUD operations code using SQLC
  • handling transactions
  • preventing deadlocks

Reference: Tech School

Get Started

  1. Launch Postgres database using Docker
make postgres
  1. Create the database
make createdb
  1. Apply schema migration
make migrateup

Isolation Levels

MySQL

READ UNCOMMITED READ COMMITED REPEATABLE READ SERIALIZABLE
DIRTY READ X X X
NON-REPEATABLE READ X X
PHANTOM READ X X
SERIALIZATION ANOMALY X
  • 4 isolation levels
  • Locking Mechanism
  • Repeatable read

Postgres

READ UNCOMMITED READ COMMITED REPEATABLE READ SERIALIZABLE
DIRTY READ X X X X
NON-REPEATABLE READ X X
PHANTOM READ X X
SERIALIZATION ANOMALY X
  • 3 isolation levels
  • Dependencies detection
  • Read commited

💡 To keep in mind: There might be errors, timeout or deadlock > RETRY MECHANISM