Tôi cần phải bắt đầu bằng cách chỉ ra rằng không có nghĩa là tôi là chuyên gia về cơ sở dữ liệu theo bất kỳ cách nào. Tôi biết cách làm quen với các ứng dụng lập trình bằng nhiều ngôn ngữ yêu cầu phần mềm cơ sở dữ liệu và tương đối quen thuộc với MySQL, Microsoft SQL Server và giờ là MEMSQL - nhưng lại không phải là chuyên gia về cơ sở dữ liệu.MEMSQL so với MySQL
Tôi đã nghiên cứu phát triển một ứng dụng có tham chiếu chéo nhiều bảng khác nhau. Một ví dụ rất đơn giản về vấn đề tôi mới gặp phải, là tôi phải:
- Trên cơ sở hàng ngày, kéo 600.000 xuống 1 triệu bản ghi vào bảng tạm thời.
- So sánh những gì đã thay đổi giữa lần kéo dữ liệu mới này và tệp cũ. Ghi lại thông tin đó trên một bảng riêng biệt.
- Repopulate bảng với các bản ghi mới.
Chạy # 2 là một truy vấn tương tự như:
SELECT * FROM (NEW TABLE) LEFT JOIN (OLD TABLE) ON (JOINED FIELD) WHERE (OLD TABLE.FIELD) IS NULL
Trong trường hợp này, tôi đang so sánh hai bảng trên một lĩnh vực nhất định và sau đó kéo các thông tin về những gì đã thay đổi.
Trong MySQL (v5.6.26, x64), thời gian truy vấn của tôi hết. Tôi đang chạy 4 vCPUs và 8 GB RAM nhưng lưu ý rằng phần còn lại của cấu hình của tôi là cấu hình mặc định (không tinh chỉnh bất kỳ tham số nào).
Trong MEMSQL (v5.5.8, x64), truy vấn của tôi chạy trong khoảng 3 giây trong lần thử đầu tiên. Tôi đang chạy chính xác cùng một cấu hình máy chủ ảo với 4 vCPUs và 8 GB RAM, cũng lưu ý rằng phần còn lại của cấu hình của tôi là cấu hình mặc định (không tinh chỉnh bất kỳ tham số nào).
Ngoài ra, trong MEMSQL, tôi đang chạy một cấu hình nút đơn. Điều tương tự cho MySQL.
Tôi thích thực tế là sử dụng MEMSQL cho phép tôi tiếp tục phát triển dự án của mình và tôi sẽ xem xét các truy vấn và lượt xem bảng chéo lớn hơn thậm chí lớn hơn mà tôi có thể chạy trên MEMSQL ... một thế giới lý tưởng, tôi sẽ sử dụng MySQL. Tôi đã bắt gặp thực tế là tôi cần sử dụng một bộ công cụ khác để quản lý cá thể của mình (ví dụ: MySQL Workbench hoạt động tương đối tốt với máy chủ MEMSQL nhưng tôi thực sự cần xây dựng các khung nhìn và bảng bằng cách sử dụng SQL Workbench nguồn mở và điều tương tự để sử dụng trình kết nối Visual Studio MySQL, hoạt động, nhưng đôi khi có thể gây đau đớn, vì một lý do nào đó tôi có thể thêm các truy vấn nhưng không thể thêm các bộ điều hợp bảng) ... xin lỗi, tôi sẽ gửi riêng xem xét cho rằng :)
Xem xét cả hai máy ảo chính xác cấu hình giống nhau, và SSD được hỗ trợ, bất cứ ai có thể cho tôi bất kỳ lời khuyên nào về cách tinh chỉnh cá thể MySQL của tôi để chạy các truy vấn lớn như trên không? Tôi hiểu rằng tôi cũng có thể tạo ra một cơ sở dữ liệu trong bộ nhớ nhưng tôi đã đọc có thể có một số vấn đề tồn tại với việc đó, không chắc chắn.
Cảm ơn bạn!
Trường có được lập chỉ mục trên cả hai bảng không? (Nếu trong một chỉ mục tổng hợp, nó là trường đầu tiên của chỉ mục?) – Uueerdo
Xin chào Uueerdo, không có trường được nối nào không được lập chỉ mục. Cảm ơn bạn, tôi sẽ thêm chúng dưới dạng chỉ mục và xem liệu nó có giúp ích gì không! – JDA