Lightweight and fast, native Go implementation. No C-bindings, just pure Go. Connections over TCP/IPv4, TCP/IPv6, Unix domain sockets or custom protocols. Automatic handling of broken connections, as well as automatic Connection Pooling (by database/sql package). Supports queries larger than 16MB. Full sql.RawBytes support. It provides intelligent LONG DATA handling in prepared statements. Secure LOAD DATA LOCAL INFILE support with file allowlisting and io.Reader support. Optional time.Time parsing, as well as optional placeholder interpolation. db.SetConnMaxLifetime() is required to ensure connections are closed by the driver safely before connection is closed by MySQL server, OS, or other middlewares. Since some middlewares close idle connections by 5 minutes, we recommend timeout shorter than 5 minutes. This setting helps load balancing and changing system variables too.