Maximise Laravel Performance: How to Optimize Queries Like a Pro

Step-by-Step Guide with Code Examples to Improve Your Database Queries

cengkuru michael
2 min readJan 30, 2023
Photo by Nick Abrams on Unsplash

Once upon a time, a young developer struggled with slow database queries. Every time he tried to fetch data, the wheel spun and spun until finally, the results appeared. He tried every trick in the book, but nothing seemed to work.

While browsing through the Laravel documentation, one day, he stumbled upon a chapter on query optimisation. And that’s when everything changed. He learned the ins and outs of how to optimise his database queries and make his web applications lightning-fast.

As a Laravel developer, you can achieve the same success by following these simple query optimisation best practices. Let’s dive in!

Indexing:

Use indexing for columns that are frequently used in WHERE and JOIN clauses. This will dramatically improve query performance.

public function up()
{
Schema::table('posts', function (Blueprint $table) {
$table->index('title');
$table->index('created_at');
});
}

Avoid Subqueries and UNIONs:

Instead of using subqueries and UNIONs, try to use JOINs whenever possible. JOINs are faster and more efficient.

$users = DB::table('users')
->join('contacts', 'users.id', '=', 'contacts.user_id')
->join('orders', 'users.id', '=', 'orders.user_id')
->select('users.*', 'contacts.phone', 'orders.price')
->get();

Eager Loading:

Use eager loading for relationships to reduce the number of queries.

$users = User::with('posts')->get();

Cache:

Use cache for repetitive queries to save time and resources.

$value = Cache::remember('users', 60, function () {
return DB::table('users')->get();
});

Pagination:

Use pagination to limit the number of returned rows.

$users = DB::table('users')->paginate(15);

Specific Columns:

Avoid using SELECT *; instead, select specific columns that you need.

$users = DB::table('users')->select('name', 'email')->get();

Raw SQL:

Use raw SQL when necessary, especially for complex queries.

$users = DB::select('select * from users where name = ?', [$name]);

By following these query optimisation best practices, you’ll see a noticeable improvement in the performance of your Laravel web applications. With optimised queries, you’ll be able to fetch data faster and provide a better user experience for your visitors.

Conclusion:

Laravel is a robust framework that makes it easy to build fast and efficient web applications. You can take your Laravel applications to the next level with the proper query optimisation techniques. Whether you’re a seasoned Laravel developer or just getting started, it’s never too late to learn how to optimise your database queries.

Put these query optimisation best practices into action today and start seeing the results yourself. Your visitors will thank you!

--

--

cengkuru michael

I turn data into meaningful stories by analyzing and visualizing information to create a cohesive narrative. Love helping others see the world in a new light.