Tôi vừa di cư đến mysql 5.5.20 và tôi đã có một vấn đề hiệu suất với các bảng tạm thời. Tôi có một thủ tục lưu trữ tạo ra tám người trong số họ, tương tự như sau:InnoDB & Tạm thời bảng
create temporary table t_opened_today
(
portfolio_id integer,
position_type_id tinyint,
open_value decimal(12,2),
today_net decimal(12,2)
);
Mở Mysql 5,5 nó có InnoDB như công cụ lưu trữ mặc định. Tôi đã từng ở trên 5.1 và đó không phải là trường hợp. vì vậy, nó đã tạo ra các bảng tạm thời với Innodb. Tôi đã xác minh điều này bằng cách xem/tmp và không thấy bất kỳ .MYI hoặc .MYD. Việc này mất 0,50 giây để thực hiện (hoặc nhiều hơn, thời gian thực hiện đang dội lên khắp nơi), điều đó thật lố bịch.
vì vậy, tôi đã sửa đổi định nghĩa bảng để bao gồm "Engine = MyISAM" và mất 0,00 giây (như người ta mong đợi) để làm gì ngoài việc tạo 8 bảng tạm thời và thoát.
Bất cứ ai cũng có một đầu mối tại sao phải mất quá lâu trong InnoDB để tạo ra các bảng tạm thời? Có lẽ việc tạo các bảng tạm thời bằng cách sử dụng công cụ lưu trữ mặc định là một số loại không lớn không?
Tôi đã không làm nhiều bất cứ điều gì để my.cnf như tôi chỉ lên và chạy. Tôi đã thiết lập tăng các bản ghi từ mặc định .. nhưng thats nó. Vì vậy, cấu hình là out-of-the-box.
cảm ơn!
thx, mặc dù nó vẫn có vẻ kỳ lạ rằng việc tạo bảng tạm thời với động cơ InnoDB phải mất quá lâu! –