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

PHP mất nhiều thời gian hơn 90 lần để chạy truy vấn so với máy khách MySQL

Đưa ra một cập nhật rất muộn về câu hỏi này:

Tôi chưa tìm ra nguyên nhân, nhưng hóa ra GIẢI THÍCH trong PHP khác với CLI. Tôi không chắc liệu có bất kỳ khía cạnh nào của kết nối khiến MySQL chọn sử dụng một trường khác cho chỉ mục hay không, vì theo như tôi biết thì những thứ đó không nên liên quan; nhưng than ôi, GIẢI THÍCH của PHP cho thấy rằng chỉ mục thích hợp đã không được sử dụng, trong khi CLI thì có.

Giải pháp trong trường hợp này (gây xáo trộn) là sử dụng gợi ý chỉ mục . Xem dòng 'TỪ' trong truy vấn đã sửa đổi này từ ví dụ của tôi:

SELECT HEX(al.uuid) hexUUID, al.created_on,
    IFNULL(al.state, 'ON') actionType, pp.publishers_id publisher_id,
    pp.products_id product_id, al.action_id, al.last_updated
FROM ActionAPI.actionLists al USE INDEX (created_on)
LEFT JOIN ActionAPI.publishers_products pp
    ON al.publisher_product_id = pp.id
WHERE (al.test IS NULL OR al.test = 0)
    AND (al.created_on >= :since OR al.last_updated >= :since)
ORDER BY created_on ASC
LIMIT :skip, 100;

Hy vọng điều này sẽ giúp ai đó!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng đúng BoneCP

  2. Lỗi:Phương pháp hoặc hoạt động không được triển khai. trong khi Cơ sở dữ liệu MYSQL giàn giáo

  3. đôi tất proxy mysql

  4. sắp xếp tùy chỉnh mysql

  5. Tính toán tổng số lượng thiết bị cho một phạm vi ngày