Как в большой базе можно получить такую статистику?
Запрос от количества данных не зависит. 
Регулярка не нужна, есть SUBSTRING_INDEX
Если запрос одноразовый, то просто запросить нужные данные.
select SUBSTRING_INDEX(username, ' ' , 1), count(1) from table group by  SUBSTRING_INDEX(username, ' ' , 1)
Индекс на поле будет очень полезен
Если надо выполнять регулярно, то поменять структуру таблицы, вынеся имя в отдельное поле.
Первым делом надо бы нормализовать базу, разместить имя и фамилию в отдельные поля (это первая нормальная форма баз данных).
А далее примерно так:
SELECT name, COUNT(id) AS cnt FROM table GROUP BY (name)