VIỆT VANG - Kinh Nghiệm



Full Text Search trong Mysql

Trần Thanh Luân / 13-01-2017

Thông thường, khi nhận 1 yêu cầu chức năng tìm kiếm không chính xác bạn sẽ nghĩ ngay đến câu query sau: SELECT id,title,description FROM book WHERE title LIKE ‘%keyword%’ Nhưng nó có 1 số hạn chế: không chính xác, tốc độ truy vấn chậm, vấn đề với tiếng Việt có dấu và không có dấu. […]


Vấn đề N+1 query trong Laravel (kỹ thuật Eager Loading)

Trần Thanh Luân / 13-01-2017

Nếu ko sử dụng đúng cách thư viện ORM của Laravel thì ta rất dễ bị rơi vào vấn đề N+1 class Book extends Model {     public function author()     {         return $this->belongsTo(‘App\Author’);     } } Bây giờ ta sẽ lặp tất cả các cuốn sách như sau foreach (Book::all() as $book) {     echo $book->author->name; } Đoạn […]


Cách tránh full table scans trong MySql

Trần Thanh Luân / 13-01-2017

Đối với nhưng table lương dư liệu nhỏ thì việc dùng Full Table Scans ảnh hưởng tới hiệu suất là không đáng kể. Nhưng với table có lượng data lớn thì bạn có thể áp dụng nhưng cách sau đây để tránh Full Table Scans: – Sử dụng ANALYSIZE TABLE tbl_name để cập nhật nhưng […]


Xử lý sự kiện javascript

Trần Thanh Luân / 13-01-2017

Khi xử lý sự kiện javascript cần lưu ý: Không gọi trực tiếp sự kiện trên đối tượng mà phải gọi qua hàm on. $(‘element’).on(‘event’,fucntion(){             //Code here; }); Khi xử lý sự kiện trên đối tượng được trả về từ ajax, để đảm bảo hoạt động trên safari thì dùng code bên dưới. $(‘document’).on(‘event’, […]


Ba cách hiển thị dư liệu lên DataGridView

Trần Thanh Luân / 13-01-2017

Truy vấn dư liệu từ database sau đó lặp qua từng record để gán vào DataGridView. Lưu ý cách này sẽ làm chậm tốc độ hiển thị khi lượng dư liệu lớn. Lời khuyên là không nên dùng nếu không bắt buộc. Sử dụng Virtual mode của DataGridView. Cách này bạn chỉ tạo đủ số […]


to-top