Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách làm cho các bảng MySQL được lập chỉ mục tốt tham gia một cách hiệu quả

Được rồi, tôi đã thử nghiệm điều này trên hơn 30.000 bản ghi mỗi bảng và nó chạy khá nhanh.

Như hiện tại, bạn đang thực hiện một phép nối trên hai bảng lớn nhưng nếu bạn quét tìm các kết quả phù hợp trên 'val' trên mỗi bảng trước tiên, điều đó sẽ làm giảm đáng kể kích thước của nhóm phép nối của bạn.

Ban đầu, tôi đã đăng câu trả lời này dưới dạng một tập hợp các truy vấn con nhưng tôi không nhận ra rằng MySQL rất chậm với các truy vấn con lồng nhau vì nó thực thi từ bên ngoài vào. Tuy nhiên, nếu bạn xác định các truy vấn con là dạng xem, nó sẽ chạy chúng từ trong ra ngoài.

Vì vậy, trước tiên hãy tạo các chế độ xem.

CREATE VIEW tbl1_iii AS (
SELECT * FROM tbl1 WHERE val='iii'
);
CREATE VIEW tbl2_iii AS (
SELECT * FROM tbl2 WHERE val='iii'
);

Sau đó chạy truy vấn.

SELECT tbl1_iii.id from tbl1_iii,tbl2_iii
WHERE tbl1_iii.id = tbl2_iii.id;

Sét.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kiểm tra trạng thái kết nối MySQL trong C #

  2. Cập nhật nhiều hàng với các giá trị khác nhau

  3. Làm cách nào để bảo vệ diễn đàn của tôi khỏi spam?

  4. Tôi có nên chỉ sử dụng Sao lưu tự động AWS RDS hoặc Ảnh chụp nhanh DB không?

  5. Tìm nạp văn bản UTF-8 từ MySQL trong R trả về ????