Tach!
Ja, recht ineffizientm weil dazu ein Full-Table-Scan stattfinden muss.
Den Full-Table-Scan hast Du auch mit einer Datumsfunktion die das Jahr ermittelt.
Kann sein, kommt darauf an, wie das intern umgesetzt ist. Wenn das Datum sortierfähig abgelegt ist, entspricht ein Jahr einem Zeitraum vom 1.1. bis 31.12. inklusive. Das könnte also auf einen Bereich umgerechnet werden und dann könnte der Index genommen werden. Machte meine schon etwas ältere Test-MariaDB aber nicht.
Denn ein Index greift nur, wenn er in seiner gesamten Länge passt.
Diese Aussage ist nicht richtig, jedenfalls nicht so uneingeschränkt, wie du es hier formulierst. Ein Index kann und wird beispielsweise kann bei einem LIKE 'xxx%'
verwendet werden, also wenn der Anfang des Suchwortes bekannt ist. Bei einem Datum wäre das für das Jahr dann der Fall, wenn es wenigstens als sortierfähiger String gespeichert wäre, also als YYYY-MM-DD formatiert.
dedlfix.