Nie pokazujesz struktury klucza, ale pokazuje, że site_id
jest częścią klucza wieloczęściowego (MUL
). zauważ, że jeśli nie jest to PIERWSZE pole w tym wieloczęściowym kluczu, to klucz nie może być użyty w klauzuli where. np. jeśli masz
KEY somekey (field1, site_id, field3, ...)
to twoja klauzula where musi zawierać OBA field
i site_id
aby ten klucz mógł być użyty w zapytaniu. Nie musisz używać pól w tej samej kolejności, w jakiej są one wymienione w kluczu (where site_id=.. and field1=...
będzie działać tak samo jak where field1=... and site_id=...
), ale ponieważ pole 1 pojawia się przed site_id w definicji klucza, musisz go również użyć, aby cały klucz był użyteczny.
To samo dotyczy twojego q
pole. Musi również znajdować się na pierwszym miejscu w zakrytych kluczach, w przeciwnym razie te klucze będą bezużyteczne.