The time complexity of retrieving all records from a large table is O(n), where n is the number of records. This is because every record must be scanned to retrieve the data.
In depth
In a basic SQL query that selects all records from a table, the database engine needs to read each row to fulfill the request. Therefore, the time complexity is linear, O(n), which reflects the number of rows in the table. However, it's important to note that actual performance can vary based on factors like indexing, database optimization strategies, and underlying hardware. If an index exists on the column that is being queried, the retrieval might be faster, but without filtering conditions, the linear complexity remains as it still has to touch each record to return it. Edge cases, such as an empty table or one with millions of rows, will also impact the practical time it takes to execute the query beyond just theoretical complexity.
Example scenario
In a production environment, suppose a company has a customer database with millions of entries. A SQL query to fetch all customer records might be written as 'SELECT * FROM customers'. The query has an O(n) time complexity, meaning if the table has one million records, the database must scan each row. If the database is not optimized or if pagination is not applied, this could lead to performance bottlenecks, impacting application responsiveness and user experience during data retrieval.
Common mistakes
A common mistake is to underestimate the impact of table size on query performance. Developers might think that querying all records is acceptable without considering the implications on server load and response times. Another error is neglecting to implement pagination or limits, leading to unnecessary data being processed and transferred, which can slow down applications and increase resource consumption considerably.
Follow-up questions
- What techniques can you use to improve query performance?
- How does indexing affect query time complexity?
- Can you explain the difference between O(n) and O(log n) in the context of databases?
- When would you use a subquery instead of a join?

Preparing for a system design interview?
- A 7-step method for answering any system design question, plus estimation numbers
- 5 worked designs: URL shortener, rate limiter, chat, news feed and file storage
- Guides to caching, databases, queues, consistency and reliability, with a 4-week study plan
- 306 practice questions with answers on caching, databases, queues, microservices, APIs and more
5 worked designs, a 4-week plan and 306 practice questions with answers.
The material stays free to read online. This is the organised, offline, print-ready PDF edition. Secure payment by PayPal; your personal download link is emailed after payment is confirmed. Digital product, no shipping.