ngày Couple trước, tôi đã nhận lỗi sau đây từ cơ sở dữ liệu MySQL:Tham số thread_stack của máy chủ MySQL - nó là gì? nó có thể to đến cỡ nào?
Chủ đề chồng tràn ngập: 68.744 byte sử dụng của một chồng 196.608 byte, và 128.000 byte cần thiết. Sử dụng 'mysqld -O thread_stack = #' để chỉ định một ngăn xếp lớn hơn.
Tất cả các tài liệu mà tôi thấy nói rằng:
Mặc định là 64KB trước MySQL 4.0.10 và 192KB sau đó. Nếu kích thước ngăn xếp luồng quá nhỏ, nó giới hạn độ phức tạp của các câu lệnh SQL mà máy chủ có thể xử lý, độ sâu đệ quy của các thủ tục lưu sẵn và các hành động tiêu thụ bộ nhớ khác.
Tôi đặt biến thread_stack thành 256K, nhưng nó chỉ là một giá trị ngẫu nhiên. Bây giờ nó đã giải quyết được vấn đề, nhưng tôi thực sự muốn biết nó nên lớn thế nào, nhận được một số giá trị ví dụ, hoặc tập quán. Ví dụ:
- Tôi có thể làm gì và không thể làm gì với ngăn xếp chuỗi 96KB (x KB)?
- Cách tính toán số lượng ngăn xếp luồng lớn mà tôi cần?
bạn đang làm gì khiến nó? Bạn có bất kỳ tham gia LARGE, hoặc procs đệ quy được lưu trữ? – oedo
Procs được lưu trữ đệ quy là lý do tôi nghĩ. Tôi cũng đã tham gia vào các bảng lớn (500 triệu bản ghi), nhưng thường đầu tiên tôi chỉ cắt nhỏ tập con của bảng và sau đó tham gia nó với thứ hai, đó là tương đối nhỏ. Tôi không bao giờ tham gia vào hai bảng với hàng triệu bản ghi cũng như các kết nối tạo ra hàng triệu bản ghi. Nhưng thread_stack có tác động gì trên các kết nối? – ssobczak
@ssobczak, bất kỳ khách hàng tiềm năng nào về cách thread_stack có tác động đến các kết nối? –