Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel éloquent withCount() censé être plus lent que juste with()

La différence est que vous demandez à mysql de compter chaque ligne de votre instruction au lieu de simplement vider. L'intérêt de withCount n'est pas que ce soit plus rapide, c'est mieux sur la mémoire si tout ce dont vous avez besoin est un comptage.

Par exemple, j'ai une relation avec des milliers d'éléments riches en données. Si j'utilise simplement un with et que j'essaie ensuite de compter les résultats, php manquera de mémoire, j'aurai jamais la chance de faire le compte. Si j'utilise withCount, un seul élément est renvoyé qui m'indique le nombre d'éléments, il n'y a donc pas de taxe sur la mémoire php, mais tout le travail est effectué sur le serveur sql.