Trang chủ » Diễn Đàn » Hỏi đáp Tin học » SQL và Cơ sở dữ liệu » Nhờ tư vấn cách tạo index trong mysql
Chủ đề đã bị khóa, bạn không thể xóa, sửa hay trả lời trong chủ đề này!
|
|
|---|
|
0
Mình có đọc qua vài bài viết nói về tạo index giúp truy vấn nhanh hơn, hiện tại mình có 1 table nội dung khoản 600MB, nhưng chưa tạo index cho nó, bắt đầu thấy tình trạng chậm chậm vì dữ liệu đc đưa vào thường xuyên (chạy cron định kì tự insert dữ liệu) .. Sau khi đọc qua vài bài cách tạo index thì ko biết tạo sao, table này chỉ chưa nội dung như site tin tức vậy (cụ thể là site tin tức) .. search tin thì dùng google, cho nên site chỉ có list tin và đọc tin, vậy tạo index thì mình chỉ tạo cái ID của nó thôi phải ko
|
|
|
|
0
Bạn phải đưa cấu trúc các table của bạn thì mới góp ý chính xác được. Tuy nhiên, qui tắc chung là:
- Khoá chính thì đã có sẵn index rồi, không cần tạo index cho khoá chính - Các column nào xuất hiện trong WHERE (ví dụ WHERE email='abc@domain.com') thì index nó (như trong ví dụ thì bạn index column email).
---------
NBThanh Tutorial Room, cập nhật thường xuyên bài viết mới. Các bài viết mới cập nhật: - PHP - Lưu nội dung file ảnh vào CSDL NEW! - Làm việc với CSDL MySQL trong PHP - Học PHP qua ví dụ - Gởi email text, HTML, tiếng việt Unicode - Học PHP qua ví dụ - 1 chương trình download manager/giấu đường dẫn download - Học PHP qua ví dụ - Làm việc với Cookie và Session |
|
|
|
0
Đây là cấu trúc table content của e, a T xem thử
CREATE TABLE IF NOT EXISTS `ce_content` ( `id` int(11) NOT NULL AUTO_INCREMENT, `catid` int(11) NOT NULL, `title` varchar(250) NOT NULL, `title_ascii` varchar(250) NOT NULL, `thumb` varchar(250) NOT NULL, `content` text NOT NULL, `source` varchar(50) NOT NULL, `datecreated` int(11) NOT NULL, `visit` int(11) NOT NULL DEFAULT '0', `comment` int(11) NOT NULL DEFAULT '0', `link` mediumtext NOT NULL, `frontpage` int(1) NOT NULL DEFAULT '0', `active` enum('0','1') NOT NULL DEFAULT '1', PRIMARY KEY (`id`), FULLTEXT KEY `title_ascii` (`title_ascii`,`content`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=79706; |
|
|
|
0
Nếu như vậy thì theo rule thứ 2 ở bài viết trước thì bạn sẽ index field nào? ;-)
---------
NBThanh Tutorial Room, cập nhật thường xuyên bài viết mới. Các bài viết mới cập nhật: - PHP - Lưu nội dung file ảnh vào CSDL NEW! - Làm việc với CSDL MySQL trong PHP - Học PHP qua ví dụ - Gởi email text, HTML, tiếng việt Unicode - Học PHP qua ví dụ - 1 chương trình download manager/giấu đường dẫn download - Học PHP qua ví dụ - Làm việc với Cookie và Session |
|
|
|
0
Ban đầu chưa biết index, e nghỉ là index cái id, nhưng mà theo a T nói thì khóa chính đã index sẳn rồi, nên chắc khỏi phải index :D ..
|
|
|
|
0
Ban đầu chưa biết index, e nghỉ là index cái id, nhưng mà theo a T nói thì khóa chính đã index sẳn rồi, nên chắc khỏi phải index :D .. Không hẳn như vậy đâu vì nó còn tuỳ thuộc vào chức năng và yêu cầu của chương trình của bạn nữa. Ví dụ chương trình của bạn có chức năng view 1 content, thì câu query của bạn có thể như sau: SELECT * FROM ce_content WHERE id=123Với câu query này thì bạn không cần thêm index gì cho table của bạn vì điều kiện tìm kiếm là trên khoá chính ID, mà khoá chính thì mặc định nó đã được index rồi. Nhưng nếu chương trình của bạn có chức năng: hiển thị toàn bộ các content trong 1 category nào đó, câu query của bạn có thể sẽ như sau: SELECT * FROM ce_content WHERE catid=123Lúc này thì bạn cần phải index thêm column catid vì điều kiện search của bạn ở đây là trên column catid.
---------
NBThanh Tutorial Room, cập nhật thường xuyên bài viết mới. Các bài viết mới cập nhật: - PHP - Lưu nội dung file ảnh vào CSDL NEW! - Làm việc với CSDL MySQL trong PHP - Học PHP qua ví dụ - Gởi email text, HTML, tiếng việt Unicode - Học PHP qua ví dụ - 1 chương trình download manager/giấu đường dẫn download - Học PHP qua ví dụ - Làm việc với Cookie và Session |
|
|
|
0
E có đọc qua 1 bài nó nói như sau:
{color="008080"}SELECT user_goal FROM tblUsers WHERE user_id = ‘120956′;Vậy trong trường hợp này tại sao nó lại index cái id vậy anh Thành |
|
|
|
0
Column ID bạn khai báo là khoá chính, mà khoá chính thì mặc định được tự động index rồi. Còn các column khác thì MySQL sẽ không tự động tạo index mà bạn phải tự tạo theo nhu cầu sử dụng.
---------
NBThanh Tutorial Room, cập nhật thường xuyên bài viết mới. Các bài viết mới cập nhật: - PHP - Lưu nội dung file ảnh vào CSDL NEW! - Làm việc với CSDL MySQL trong PHP - Học PHP qua ví dụ - Gởi email text, HTML, tiếng việt Unicode - Học PHP qua ví dụ - 1 chương trình download manager/giấu đường dẫn download - Học PHP qua ví dụ - Làm việc với Cookie và Session |
