MySQL - Agrupamento por substring + Tabela auxiliar

Bom dia,
Tendo uma tabela, por exemplo:


| DATA | BYTES_ENVIADOS | BYTES_RECEBIDOS | TELEFONE |

2011-03-01 | 1200 | 545 | 1191545454 |

Problema 1:
Tendo que agrupar por DDD’s, sem poder criar uma coluna DDD e populá-la, o correto seria fazer um GROUP BY no campo telefone, utilizando substring, e criando um index nesta coluna, ok?
Porém, essa tabela contém uma quantidade absurda de dados. Haveria uma melhor solução?
Problema 2:
Devendo haver opção de agrupamento por UF (estado), para uma consulta nesta tabela, uma segunda tabela seria criada, com os campos DDD e UF, e mais uma vez, a ligação seria feita utilizando o campo telefone, também através de uma substring, em um join…

A pergunta é: Como lidar com esta situação, de uma maneira mais eficiente, em termos de performance?

Agradeço a atenção!

CURSOR e stored procedure.
O MySql tem um suporte bem bacana para isto.

Vlw! Vou dar uma pesquisada…