Tôi đã hỏi Google nhưng tôi vẫn còn bối rối.Lập chỉ mục một cột varchar
1) Có sự cố khi lập chỉ mục cột Varchar không. Khi tôi không nên và khi tôi nên
2) Lập chỉ mục cột char VS Varchar column.
Cảm ơn
Tôi đã hỏi Google nhưng tôi vẫn còn bối rối.Lập chỉ mục một cột varchar
1) Có sự cố khi lập chỉ mục cột Varchar không. Khi tôi không nên và khi tôi nên
2) Lập chỉ mục cột char VS Varchar column.
Cảm ơn
1 - Lập chỉ mục nếu bạn đang truy vấn và đủ chọn lọc. Nếu nó là một cột mà 90% các giá trị là như nhau, sẽ không có nhiều điểm.
2 - Đây không phải là một câu hỏi, nhưng tôi sẽ đoán bạn muốn biết nếu bạn cần. Có, nếu bạn truy vấn nó và nó đáp ứng các tiêu chí trên.
Thật vậy, việc lập chỉ mục (N) varchar cột hoạt động tốt. Chỉ gotcha sẽ được xem ra cho giới hạn chiều rộng 900 byte – StuartLC
Có những vấn đề chỉ số với varchar (max) và nvarchar (max) đó là lý do tại sao họ không nên được sử dụng trừ khi bạn có ý định tràn kích thước của varchar bình thường và nvarchar cánh đồng. – HLGEM
@ HLGEM - bạn có thể xây dựng không? – JNK
Nói chung hiệu suất
Về lý thuyết/thiết kế, bạn có một mô hình logic ở đâu, tiếng nói, tên người dùng là duy nhất.
Tuy nhiên, tại thời điểm triển khai, bạn biết rằng sử dụng điều này là tốn kém (trường hợp, dấu trọng âm, vv) so với sử dụng cột "userid" thay thế hiệu quả hơn làm chỉ mục. Nói rằng, bạn sẽ có một chỉ mục trên tên vì nó nên là duy nhất.
Sự khác biệt sẽ là nơi bạn sử dụng chỉ mục này: nếu nó nằm trong bảng con làm cột khóa ngoài, thì đó không phải là ý tưởng hay. Hoặc như một chỉ số nhóm.
Là một chỉ mục duy nhất cho một bảng không có FK, thì không phải ở đây cũng không có.
Cuối cùng, tôi chỉ sử dụng char/varchar cho các nội dung như ngôn ngữ ISO hoặc mã tiền tệ (DE, EN, GBP, CHF, v.v.). Nhưng cắt giảm của tôi thay đổi để trung thực ...
varchar
của bạn có tối đa 50 ký tự. kích thướcchar
vs varchar
được cố định so với kích thước biến (ví dụ. char(100)
) luôn có 100 byte trong trang dữ liệu, varchar(100)
mất đến 100)
Nếu u có thể hỗ trợ một câu trả lời hiện có, hoặc có một cái gì đó để thêm, xin vui lòng làm điều đó. – Costa