Что для вас значит «вытащить их весь список»?
Я могу выбрать 20 000 строк из большой таблицы «друзей» (несколько миллионов строк) за 15 миллисекунд на моем компьютере, но это не включает время прохождения сети (оба направления), форматирование и отображение на веб-странице. (Я предполагаю, что смысл - веб-приложение.)
Вам понадобится индекс, который охватывает user_id, но создание первичного ключа для (user_id, buddy_id) должно сделать это.
Языки сценариев полезны для генерации тестовых данных. Я использую ruby сегодня.