Tips được gắn thẻ "Database"

Coi tất cả các tip được gắn thẻ Database.
shape
shape
shape
shape
shape
shape
shape
shape

Database Trung bình

Optimistic locking với cột version: chặn lost update trong Laravel (so với lockForUpdate)

Hai người cùng lưu một bản ghi và một thay đổi biến mất không dấu vết. Chặn lost update bằng cột version, trả 409, retry trong job, và biết khi nào lockForUpdate hợp hơn.

Laravel 13 PHP 8.4 Mysql 8.4
Sơ đồ Thử thách
14 phút Đọc tip
Database Khó

Isolation level: dirty, non-repeatable, phantom read trên MySQL, PostgreSQL và Laravel

Vì sao DB::transaction() không cứu được vụ bán lố hàng: mỗi isolation level đảm bảo gì trên MySQL và PostgreSQL, và chọn level ra sao trong Laravel.

Laravel 13 PHP 8.4 Mysql 8.4
Sơ đồ Thử thách
14 phút Đọc tip
DevOps Khó

Migration database không downtime với Expand/Contract: đổi tên cột mà không làm gãy deploy

Đổi tên cột giữa lúc deploy là server cũ với queue worker gãy liền. Xài expand/contract, backfill theo batch và đúng thứ tự deploy để đổi schema an toàn.

Laravel 13 PHP 8.4 Mysql 8.4
Sơ đồ Thử thách
16 phút Đọc tip
Database Trung bình

Offset hay cursor pagination: vì sao trang 4.000 chậm rì và keyset query cứu ra sao

OFFSET làm trang sâu chậm dần và làm trùng, sót dòng khi dữ liệu đổi. Coi cách viết keyset query, cursor ghép, cursorPaginate của Laravel và thiết kế API.

Laravel 13 PHP 8.4 Mysql 8.4
Sơ đồ Thử thách
15 phút Đọc tip
Database Trung bình

Database Index - Biến Full Scan Thành Tra Cứu Tức Thì

Coi vì sao query hổng có index phải quét từng dòng, index biến nó thành tra cứu lẹ làng cỡ nào, và cách đọc EXPLAIN để phân biệt.

SQL ANSI / MySQL 8+
Sơ đồ
3 phút Đọc tip
PHP Dễ

Chống SQL Injection Trong PHP - Đừng Để Dính Bẫy

Học mấy kỹ thuật quan trọng để bảo vệ ứng dụng PHP khỏi mấy đòn SQL injection.

PHP 8.0+
Sơ đồ
2 phút Đọc tip