Trong khi hướng tới ' đáng kính ', 2 Hàng triệu hàng vẫn là một kích thước tương đối nhỏ cho một bảng. (Và do đó, hiệu suất nhanh hơn thường có thể)
Như bạn đã phát hiện ra, ký tự đại diện giao diện người dùng đặc biệt không hiệu quả và chúng tôi sẽ phải tìm giải pháp cho điều này nếu trường hợp sử dụng đó phổ biến cho ứng dụng của bạn.
Có thể là bạn không có tập hợp chỉ mục phù hợp . Tuy nhiên, trước khi tiếp tục, tôi muốn nhấn mạnh rằng mặc dù các chỉ mục thường cải thiện hiệu suất DBMS với các câu lệnh SELECT thuộc mọi loại, nhưng nó có hệ thống có ảnh hưởng tiêu cực đến hiệu suất của các hoạt động "CUD" (tức là với SQL CREATE / INSERT, UPDATE , DELETE động từ, tức là các truy vấn viết vào cơ sở dữ liệu thay vì chỉ đọc với nó). Trong một số trường hợp, tác động tiêu cực của các chỉ mục đối với các truy vấn "ghi" có thể rất đáng kể.
Lý do của tôi để đặc biệt nhấn mạnh tính chất xung quanh của các chỉ mục là có vẻ như ứng dụng của bạn thực hiện một lượng lớn dữ liệu thu thập như một phần hoạt động bình thường của nó và bạn sẽ cần phải theo dõi khả năng xuống cấp vì các truy vấn INSERT bị chậm lại . Một giải pháp thay thế khả thi là thực hiện thu thập dữ liệu vào một bảng / cơ sở dữ liệu tương đối nhỏ, không có hoặc rất ít chỉ mục và thường xuyên nhập dữ liệu từ cơ sở dữ liệu đầu vào này vào cơ sở dữ liệu nơi diễn ra quá trình khai thác dữ liệu thực tế. (Sau khi chúng được nhập, các hàng có thể bị xóa khỏi "cơ sở dữ liệu đầu vào", giữ cho nó nhỏ và nhanh cho chức năng INSERT của nó.)
Một mối quan tâm / câu hỏi khác là về chiều rộng của một hàng trong bảng ép kiểu (số cột và tổng chiều rộng của các cột này). Hiệu suất kém có thể liên quan đến thực tế là các hàng quá rộng, dẫn đến quá ít hàng trong các nút lá của bảng và do đó cấu trúc cây sâu hơn mức cần thiết.
Quay lại các chỉ mục ...
theo vài truy vấn trong câu hỏi, có vẻ như bạn có thể hưởng lợi từ chỉ mục ip + note (chỉ mục được tạo ít nhất bằng hai khóa này theo thứ tự này). Không thể thực hiện phân tích đầy đủ về tình hình lập chỉ mục và đánh giá thẳng thắn về lược đồ cơ sở dữ liệu ở đây (không đủ thông tin cho một ...) nhưng quy trình chung để làm như vậy là lập danh sách các trường hợp sử dụng phổ biến nhất và để xem chỉ mục cơ sở dữ liệu nào có thể giúp giải quyết những trường hợp này. Người ta có thể thu thập thông tin chi tiết về cách xử lý các truy vấn cụ thể, ban đầu hoặc sau khi (các) chỉ mục được thêm vào, bằng lệnh mySQL EXPLAIN.
Chuẩn hóa HOẶC khử định dạng (hoặc thực sự là sự kết hợp của cả hai!), Thường là một ý tưởng khả thi để cải thiện hiệu suất trong các hoạt động khai thác.