John Davidson

php - Laravel query on which is more performant

0 comments
Message:


I am fairly new to laravel and sql I noticed that a lot of things can be achieved using different techniques. I want to know which is more performant?


Message::where('user_id', auth()->user()->id)->get()

or


auth()->user()->messages

Someone I know warned me about eager loading that it greatly affects performance.



My Answer:
>id())->get();

This query uses the Eloquent ORM to retrieve all messages where the user_id column matches the currently authenticated user's id. Eloquent is a powerful and convenient way to interact with your database in Laravel, but it can sometimes be less performant than writing raw SQL queries.

To compare the performance of this query with a raw SQL query, you can use the DB facade in Laravel to execute the same query using raw SQL:

php
DB::select('SELECT * FROM messages WHERE user_id = ?', [auth()->id()]);


In general, raw SQL queries can be more performant than Eloquent queries because they allow you to write optimized queries tailored to your specific needs. However, Eloquent provides a more convenient and expressive way to interact with your database, especially for simple queries like the one above.

If performance is a concern for your application, you may want to consider using raw SQL queries for complex or performance-critical queries, while still taking advantage of Eloquent for simpler queries or when convenience is more important than performance.

Rate this post

5 of 5 based on 7135 votes

Comments




© 2024 Hayatsk.info - Personal Blogs Platform. All Rights Reserved.
Create blog  |  Privacy Policy  |  Terms & Conditions  |  Contact Us