Chỉ mục trên cột VARCHAR có làm cho truy vấn chạy chậm hơn không? Tôi có thể biến nó thành int. và tôi không cần phải so sánh LIKE%.Chỉ mục trên Varchar có tạo sự khác biệt về hiệu suất không?
Trả lời
Chỉ mục trên cột varchar có làm cho truy vấn chạy chậm hơn không?
Không, không.
Nếu trình tối ưu hóa quyết định sử dụng chỉ mục, truy vấn sẽ chạy nhanh hơn. INSERT
s/UPDATE
s/DELETE
s trên bảng đó sẽ chậm hơn, nhưng không đủ khả năng để thông báo.
tôi không cần phải làm như% so NHƯ
Hãy nhận biết rằng việc sử dụng:
LIKE '%whatever%'
... sẽ không sử dụng một chỉ số, nhưng ý chí sau :
LIKE 'whatever%'
Điều quan trọng là ký tự đại diện cho lefthan d bên của chuỗi có nghĩa là không thể sử dụng chỉ mục trên cột.
Cũng biết rằng MySQL limits the amount of space set aside for indexes - chúng có thể dài tối đa 1000 byte cho bảng MyISAM (767 byte cho InnoDB).
Cảm ơn, tôi không có ý tưởng xóa ký tự đại diện bên trái sẽ sử dụng chỉ mục. Tôi không ngờ rằng các ký tự đại diện sẽ không được hỗ trợ chút nào. – RevNoah
Lập chỉ mục không làm cho truy vấn chậm hơn, kích thước cơ sở dữ liệu trở nên lớn hơn, Vì vậy, hãy tiếp tục và thử.
Bạn sẽ có thể nhận được hiệu suất tốt hơn khi tìm nạp hàng nhưng tùy thuộc vào dữ liệu, truy vấn của bạn.
Nó cần phải được chỉ ra rằng lập chỉ mục * không * làm cho chèn chậm hơn, và nó hoàn toàn có thể giết hiệu suất nếu nó đẩy kích thước cơ sở dữ liệu của bạn lên đến điểm mà bạn thường xuyên đánh đĩa. –
Cảm ơn Anon.Bạn đúng! – YOU
Bạn sẽ không làm cho truy vấn của mình chậm hơn bằng cách lập chỉ mục. Nếu bạn có thể tạo cột kiểu int, tôi khuyên bạn nên làm như vậy vì hầu hết RDBMS có thể tìm kiếm int nhanh hơn varchars
Nếu bạn có thể thay thế cột VARCHAR bằng một số nguyên (mà tôi nghĩ là gợi ý của bạn) Sau đó, chỉ mục bao gồm cột số nguyên sẽ hoạt động tốt hơn cột VARCHAR vì một vài lý do.
- Kích thước chỉ mục sẽ nhỏ hơn và ít phân trang hơn.
- So sánh các số nguyên tốt hơn nhiều so với varchar.
về điểm 2 -> nơi nào bạn cần so sánh varchar nếu bạn đã lập chỉ mục nó, khác với so sánh LIKE như đã nêu trong câu trả lời được bình chọn nhiều nhất? – shabby
Điểm thứ hai là không đúng sự thật. khi bạn chỉ mục varchar của nó trở thành INT thực sự cho cơ sở dữ liệu, chỉ trên đầu là quét chỉ mục – Peter
Có vấn đề về hiệu suất khi nói đến chèn. Tôi có thể chắc chắn cho bạn biết rằng chèn vào một bảng lớn trong đó có một chỉ mục trên một cột varchar có thể rất chậm. (tối đa 50x)
- 1. Hiệu suất tạo chỉ mục
- 2. Có sự khác biệt về hiệu suất sử dụng CGFloat có hoặc không có postfix .f trong Mục tiêu-C
- 3. Chỉ mục trên Varchar?
- 4. Sự khác biệt về hiệu suất Mục tiêu-C, .m/.mm?
- 5. Có sự khác biệt nào giữa NSCountResultType và countForFetchRequest: lỗi: về hiệu suất không?
- 6. Sự khác biệt giữa varchar (5) và varchar (5000)?
- 7. Có sự khác biệt về hiệu suất giữa bộ chọn jquery hay biến số
- 8. foreach loop Danh sách sự khác biệt hiệu suất
- 9. Có sự khác biệt về hiệu suất nào giữa myCollection.Where (...) FirstOrDefault() và myCollection.FirstOrDefault (...)
- 10. Sự khác biệt về hiệu suất giữa bản đồ và unordered_map trong C++
- 11. Sự khác biệt về hiệu suất giữa Amazon EC2 và Linode
- 12. Haskell: sự khác biệt về hiệu suất từ thành phần chức năng khác nhau?
- 13. sự khác biệt giữa varchar (500) vs varchar (max) trong sql server
- 14. Sự khác biệt về hiệu suất đáng ngạc nhiên: List.Constains, SortedList.ContainsKey, DataRowCollection.Contains, DataTable.Select, DataTable.FindBy
- 15. Có sự khác biệt về hiệu suất giữa các phiên bản SQL Server Web và Express không?
- 16. Sự khác biệt về Shader trên iOS
- 17. Có sự khác biệt về hiệu suất khi sử dụng tập tin .resx và lắp ráp vệ tinh không?
- 18. Sự khác biệt giữa chỉ mục tạo của MySQL và thay đổi chỉ mục thêm là gì?
- 19. Sự khác biệt về hiệu suất của AtomicInteger so với số nguyên
- 20. Sự khác biệt về hiệu suất của JavaScript giữa hai bằng (==) và ba bằng (===)
- 21. Chèn hiệu suất có và không có Chỉ số
- 22. hiệu suất giữa varchar (1) so với char (1)
- 23. Có sự khác biệt về sự khác biệt nào giữa tuần tự hóa nhị phân và XML không?
- 24. Thứ tự JOIN có tạo sự khác biệt không?
- 25. Tại sao có nhiều khác biệt về hiệu suất giữa Chủ đề và Tác vụ?
- 26. Sự khác biệt lớn về hiệu suất: Sử dụng sysdate vs sử dụng ngày được định dạng trước
- 27. Sự khác biệt hiệu suất, nếu có, giữa if (! Foo) và if (foo == false) trong Java?
- 28. Sẽ có sự khác biệt về hiệu suất giữa các chức năng ẩn danh và các chức năng bình thường?
- 29. Có sự khác biệt về hiệu năng giữa cuộc gọi chức năng và sự kiện trong C# không?
- 30. JavaScript cho sự khác biệt về chỉ số vòng lặp
Làm thế nào để hiển thị các truy vấn mẫu minh họa ý của bạn? – wallyk
"chậm" không có ý nghĩa nếu không có thứ gì đó để so sánh. Bạn có hỏi VARCHAR có chậm hơn INT hay VARCHAR được lập chỉ mục có chậm hơn không được lập chỉ mục không? –
Tôi không hiểu. Nếu dữ liệu bạn đang lưu trữ là int, thì loại cột phải là int và bạn sẽ lập chỉ mục cột đó.Nếu dữ liệu là varchar, thì loại cột của bạn là varchar – ram