O que você quer ter certeza é que a consulta usará APENAS o índice, portanto, certifique-se de que o índice cubra todos os campos que você está selecionando. Além disso, como é uma consulta de intervalo envolvida, você precisa ter o venid primeiro no índice, pois é consultado como uma constante. Eu, portanto, criaria e indexaria assim:
ALTER TABLE events ADD INDEX indexNameHere (venid, date, time);
Com esse índice, todas as informações necessárias para concluir a consulta estão no índice. Isso significa que, esperamos, o mecanismo de armazenamento seja capaz de buscar as informações sem realmente procurar dentro da própria tabela. No entanto, o MyISAM pode não ser capaz de fazer isso, pois ele não armazena os dados nas folhas dos índices, então você pode não obter o aumento de velocidade desejado. Se for esse o caso, tente criar uma cópia da tabela e use o mecanismo InnoDB na cópia. Repita os mesmos passos lá e veja se você obtém um aumento significativo de velocidade. InnoDB faz armazenam os valores de campo nas folhas de índice e permitem a cobertura de índices.
Agora, esperamos que você veja o seguinte ao explicar a consulta:
mysql> EXPLAIN SELECT date, time FROM events WHERE venid='47975' AND date>='2009-07-11' ORDER BY date;
id select_type table type possible_keys key [..] Extra
1 SIMPLE events range date_idx, indexNameHere indexNameHere Using index, Using where