Backend Engineering (Intermediate)
This collection of videos covers major system design concepts and fundamentals that every backend engineer needs to understand. This will help you in your design interviews. The videos are ordered in the way they should be consumed. This playlist is designed for intermediate viewers
List of all Backend Engineering Playlists
👨💻Backend Engineering (Beginner) https://www.youtube.com/playlist?list=PLQnljOFTspQUNnO4p00ua_C5mKTfldiYT
👩💻Backend Engineering (Intermediate) https://www.youtube.com/playlist?list=PLQnljOFTspQWGuRmwojJ6LiV0ejm6eOcs
👨🏻💻Backend Engineering (Advanced) https://www.youtube.com/playlist?list=PLQnljOFTspQUybacGRk1b_p13dgI-SmcZ
Curated by: Hussein Nasser (54 videos)
Currently Playing: SELECT COUNT (*) can impact your Backend Application Performance, here is why
aggregating large entries in the database (to perform a count for example) is a lot of work.
The database has to sort through a large number of records whether in an index or in the table itself.
Doing this too often can impact the performance of both your database and your application, let us discuss why count can be slow and an alternative if you want an estimate of the count.
0:00 intro
0:30 SELECT COUNT(G)
//index scan because we have to fetch g and check if its null
select count(g) from grades where id between 1000 and 4000;
2:50 SELECT COUNT(*)
//index only scan because we don’t have to jump back to heap
select count(*) from grades where id between 1000 and 4000;
4:00 SELECT COUNT(*) WITH UPDATE
//do an update
update grades set g = 10 where id between 1000 and 4000;
//index only scan but with heap fetches .. (slower)
select count(*) from grades where id between 1000 and 4000;
7:00 COUNT gets slower more rows
Estimate count
explain (format json) select * from grades;
analze grades
8:00 Return Count estimate
https://www.cybertec-postgresql.com/en/postgresql-count-made-fast/
🎙️Listen to the Backend Engineering Podcast
https://husseinnasser.com/podcast
🏭 Backend Engineering Videos
https://backend.husseinnasser.com
💾 Database Engineering Videos
https://www.youtube.com/playlist?list=PLQnljOFTspQXjD0HOzN7P2tgzu7scWpl2
🏰 Load Balancing and Proxies Videos
https://www.youtube.com/playlist?list=PLQnljOFTspQVMeBmWI2AhxULWEeo7AaMC
🏛️ Software Archtiecture Videos
https://www.youtube.com/playlist?list=PLQnljOFTspQXNP6mQchJVP3S-3oKGEuw9
📩 Messaging Systems
https://www.youtube.com/playlist?list=PLQnljOFTspQVcumYRWE2w9kVxxIXy_AMo
Become a Member
https://www.youtube.com/channel/UC_ML5xP23TOWKUcc-oAE_Eg/join
Support me on PayPal
https://bit.ly/33ENps4
Join our Thriving Backend Community on Discord
https://discord.com/invite/CsFbFce
Stay Awesome,
Hussein
Tracks in this Playlist
- What is the TCP 3-Way Handshake and Why Backend Engineers should understand it
- Layer 4 vs Layer 7 Proxying In Details Explained with Examples
- Database Engines Crash Course (MyISAM, Aria, InnoDB, XtraDB, LevelDB & RocksDB)
- How HTTP/2 Works, Performance, Pros & Cons and More
- Load balancing in Layer 4 vs Layer 7 with HAPROXY Examples
- 7 Tips to Optimize Your Backend API Without Caching
- Your Backend is Also a Frontend (Backend vs Frontend Engineering)
- Overengineering in Software
- NginX Crash Course (Layer 4 & Layer 7 Proxy, HTTPS, TLS 1.3, HTTP/2 & More)
- HAProxy Crash Course (TLS 1.3, HTTPS, HTTP/2 and more)
- What is a Virtual IP Address? How does it help with High-Availability
- Fail-over and High-Availability (Explained by Example)
- Active-Active vs Active-Passive Cluster to Achieve High Availability in Scaling Systems
- Connection Pooling in PostgresSQL with NodeJS (Performance Numbers)
- Asynchronous vs Multithreading and Multiprocessing Programming (The Main Difference)
- Horizontal vs Vertical Database Partitioning
- Database Partitioning Crash Course (with Postgres)
- Database Sharding Crash Course (with Postgres examples)
- Can you get Eventual Consistency in Relational Databases?
- How to Avoid Double Booking and Race Conditions in Online Web Applications
- RabbitMQ Crash Course
- Apache Kafka Crash Course
- Microservices Explained and their Pros & Cons
- When Designing a Backend System Minimize the “What If” Questions
- Building a Multi-player Game with WebSockets
- DevTools Waterfall Deep Dive - Diagnose Your Backend and Improve the Frontend User Experience
- SELECT COUNT(*) is Slow, Estimate it Instead (with Example in Node JS and Postgres)
- When to Build a Stateless vs Stateful Back-ends using the right protocols (UDP, HTTP, TCP, QUIC)
- Why you Shouldn't Implement Features Because They are Easy - Backend Engineering
- Index Scan vs Index Only Scan on Database Systems (with Postgres)
- SELECT COUNT (*) can impact your Backend Application Performance, here is why
- Combining Database Indexes for Better Performance in Your Backend Applications (with PostgreSQL)
- 2 Hours RabbitMQ Course with NodeJS, Pros & Cons, Cloud RMQ, RMQ vs Kafka, RMQ in Wireshark & MORE!
- Uber’s new Backend Architecture for Processing Payments
- Traefik Crash Course (Without docker)
- Envoy Proxy Crash Course, Architecture, L7 & L4 Proxying, HTTP/2, Enabling TLS 1.2/1.3 and more
- don’t use “offset” in your SQL
- Is EventStoreDB the First Native gRPC Database?
- The 2021 Slack Outage - Detailed analysis of what happened to Slack on Jan 4th 2021
- How do i learn new tech as a software engineer
- Load Balance multiple RTMP Servers to Horizontally Scale Streaming (Node Media Server and HAProxy)
- CQRS is probably the cause of the Microservices madness
- How timeouts can make or break your Backend load balancers
- Watch out before Adding Indexes to Your Table, Your Database Optimizer Might not Use them
- Optimizing Communication and Networking in Database Systems - The Backend Engineering Show
- Long Polling and how it differs from Push, Poll and SSE - The Backend Engineering Show
- Postgres Explain Explained - How Databases Prepare Optimal Query Plans to Execute SQL
- B-tree vs B+ tree in Database Systems
- Should you go with an Optimistic or Pessimistic Concurrency Control Database?
- The Journey of an HTTP request to the Backend | Backend Engineering Show
- Low code | The Backend Engineering Show
- Multi-tenancy architecture | The Backend Engineering Show
- First port your computer hits
- When do you use threads?