Also anders geht das gar nicht -- Mit oder ohne Index.
Im Hinblick auf die in meiner Antwort verlinkte Lösung ist das, mit allem Verlaub, eine sehr mutige Behauptung.
Was heißt hier mutig?
Naja. Das es anders geht wurde ja kurz vorher gezeigt. Da ist es durchaus "mutig" zu behaupten, dass es anders nicht gehe. Du hattest hatte ja auch deutlich auf MONTH() Bezug genommen, also auf die Variante, die ich nicht grundlos als "bad" markiert habe.
Genau da greift nämlich der Index -- Falls vorhanden.
DEDLFIX hat gerade erst so schön erklärt, dass bei
MONTH(sort_datum) = 7
AND YEAR(sort_datum) = 2018
die Indizes nicht greifen können und deshalb die einmalige Operation mit
BETWEEN '2018-07-01' AND LAST_DAY('2018-07-01')
vorzuziehen ist.
Ansonsten kommt mir es mir vor, als versuche @Meowsalot mit einem Q8 eine Damenhandtasche in den Gassen der Innenstadt von Siena auszuliefern: Viele PS, viel umbauter Raum, viel Schnickschnack - aber er muss den Fußgängern im Schrittempo hinterherschleichen, bei jedem Abbiegen braucht er einen Einweiser und rempelt trotzdem an den Ecken an. Und: Bei Gegenverkehr geht gar nichts mehr.
Was @Meowsalot erreichen will geht, zumindest mit den zu erwartenden, geringen Datenmengen, mit Textdateien viel einfacher. Und sehr performant: Der Typ mit der Vespa schlägt den Q8 beim Transport von Damenhandtaschen in der Innenstadt von Siena nämlich um Längen.