Sphinx vs MySql - Pesquisar na lista de amigos (eficiência / velocidade)
Estou transferindo minhas buscas de aplicativos para o Sphinx da MySQL e estou tendo dificuldades para descobrir isso ou se ele precisa ser portado (eu realmente quero saber se vale a pena usar a sphinx para esse caso específico de eficiência /Rapidez):
users
uid uname
1 alex
2 barry
3 david
friends
uid | fid
1 2
2 1
1 3
3 1
Detalhes são:
- InnoDB
- Comercial: índice no uid, índice no uname
- amigos: índice combinado em uid, fid
Normalmente, para pesquisar todos os amigos de alex com o mysql:
$uid = 1
$searchstr = "%$friendSearch%";
$query = "SELECT f.fid, u.uname FROM friends f
JOIN users u ON f.fid=u.uid
WHERE f.uid=:uid AND u.uname LIKE :friendSearch";
$friends = $dbh->prepare($query);
$friends->bindParam(':uid', $uid, PDO::PARAM_INT);
$friends->bindParam(':friendSearch', $searchstr, PDO::PARAM_STR);
$friends->execute();
É mais eficiente encontrar os amigos de alex com sphinx vs mysql ou seria um exagero?
Se a esfinge fosse mais rápida para isso, pois a lista atinge milhares de pessoas, como seria a consulta de indexação? Como excluir uma amizade que não existe mais com a esfinge também, posso ter um exemplo detalhado nesse caso? Devo alterar essa consulta para usar o Sphinx?