Ví dụ về Cơ sở dữ liệu

Tạo bảng trong cơ sở dữ liệu và cách tối ưu nhất

Hôm nay tôi đang phải đối mặt với bài toán của cơ sở dữ liệu mà cần phải giải quyết ngay lập tức nên đã tìm ra cách rất hay của cộng đồng …

Mẹo như sau: Trong một bảng dữ liệu, nếu trường nào thường phải ghi đọc thì tách riêng ra bảng mới để dễ quản lý và truy vấn nhanh hơn, trong MySQL thì khi sử dụng LEFT JOIN hay JOIN cũng đều cực nhanh, như vậy trường nào mà ít cập nhật hoặc hỏi tới thì để riêng, khi cần thì JOIN là xong, còn các bảng nào bận rộn thì tốt nhất tách hẳn ra.

Ví dụ về Cơ sở dữ liệu
Ví dụ về Cơ sở dữ liệu và chia bảng tối ưu

Ví dụ:

SELECT t1.name AS lev1, t2.name as lev2, t3.name as lev3, t4.name as lev4
FROM category AS t1
LEFT JOIN category AS t2 ON t2.parent = t1.category_id
LEFT JOIN category AS t3 ON t3.parent = t2.category_id
LEFT JOIN category AS t4 ON t4.parent = t3.category_id
WHERE t1.name = 'ELECTRONICS';

+-------------+----------------------+--------------+-------+
| lev1        | lev2                 | lev3         | lev4  |
+-------------+----------------------+--------------+-------+
| ELECTRONICS | TELEVISIONS          | TUBE         | NULL  |
| ELECTRONICS | TELEVISIONS          | LCD          | NULL  |
| ELECTRONICS | TELEVISIONS          | PLASMA       | NULL  |
| ELECTRONICS | PORTABLE ELECTRONICS | MP3 PLAYERS  | FLASH |
| ELECTRONICS | PORTABLE ELECTRONICS | CD PLAYERS   | NULL  |
| ELECTRONICS | PORTABLE ELECTRONICS | 2 WAY RADIOS | NULL  |
+-------------+----------------------+--------------+-------+
6 rows in set (0.00 sec)

Thật tuyệt với, JOIN của SQL chạy cực nhanh và không tốn thời gian chút nào, ngoài ra trong các trình quản lý cơ sở dữ liệu, khi một bảng quá dài sẽ làm cho cỗ máy xử lý nặng nề, SQL phải Fetch qua hàng ngàn row mới tới giá trị mà bạn yêu cầu thì quả là khổ khi có hàng triệu bảng dữ liệu … lúc đó hãy nhớ chia nhỏ bảng của bạn ra …

 

TÁC GIẢ:

Tôi là Jam, thâm niên 7 năm thiết kế website và làm SEO. Hãy theo dõi blog của tôi để nhận được nhiều chia sẻ thú vị xung quanh chủ đề công nghệ.

Có 2 bình luận !

  1. xin chào jam!
    mình không phải dân kỹ thuật cũng không phải dân seo, lên muốn nhờ Jam tư vấn giúp mình vụ này được không?
    – mình có 1 website bán hàng mà dữ liệu trong bảng của mình lên đến trên 4 triệu bản ghi, khi khách hàng truy vấn bằng domain.com/*12345 thì nó load rất chậm, Theo jam có cách nào để khắc phục vấn đề này không? (web của mình là sim số đẹp)
    – mình muốn hỏi thêm. là nếu mình nhờ bên kỹ thuật tách database ra làm 2 thì có được không (1 website chạy 2 database) mình muốn tách riêng mục liên quan đến truy vấn về sim ra 1 làm data riêng biệt, và các mục còn lại làm 1 data riêng biệt. liệu như thế có được ko nhỉ? mình lọ mọ trên google mãi mà ko có tài liệu nào nói về 1 website chạy 2 hay nhiều database cả.
    – xin cảm ơn!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *