The Big Database is a really vague concept. The answers to this question already have very different answers and opinions. Some approaches to the definition of “small”, “medium” and “large” databases may make more sense than others, but at some point I believe that each definition is correct, true and valid.
Some definitions make more sense than others, as they focus on various aspects of importance for the design, programming, use, maintenance, and administration of the database, and these various aspects are what really matter for the database used. It just happens that all of these aspects are affected by the foggy concept of "Database Size".
So, does this mean that it doesn't matter, can you determine if a particular database is large or not?
Of course not. This means that you will apply the concept in different ways, evaluating the different design / operational / administrative aspects of your database. It also means that every time this concept will be foggy.
As an example: the database indexing strategy (the aspect of database design) depends on the number of records for each table (measure "size"), the size of the record by the number of records (another dimension "size") and Query Vs. The ratio of Creation / Update / Delete (aspect of the use of the database).
Response response time is better if indexes are used for tables with a large number of records. Depending on the nature of the WHERE, ORDER BY clauses and record aggregation, you may need several indexes for specific tables.
The operations of creating, updating, and deleting negatively affect the increase in the number of indices in the affected table (s). More indexes for the affected table mean more changes that the RDBMS needs to make, spending more time and more resources to apply these changes.
In addition, if your RDBMS spends more time applying these changes, locks are also supported for a longer time, which also affects the response time to other requests sent to the system at the same time.
So, how do you balance the number and design of your indexes? How do you know if you need an additional index, and if, adding this index, you do not have a big negative impact on the response time to the request? Answer. You test and profile your target load database according to your load / performance requirements and analyze the profiling data to see if further optimizations / redesigns / indexes are needed.
Different index strategies are required for different queries. The ratio of Creation / Update / Delete. If your database is under a heavy load of queries, but rarely updated, the performance for the entire application will be better if you add every index that improves query response time. On the other hand, if your database is constantly being updated, but there are no large operations with queries, then the performance will be better if you use less indexes.
There are, of course, other aspects: database schema design, storage strategy, network design, backup strategy, stored procedures / triggers, etc. programming, applied programming (against the database), etc. All these aspects are influenced by different concepts of "size" (record size, number of records, index size, index, schema, storage size, etc.).
I would like to have more time, because this topic is fascinating. I hope this small contribution serves as a starting point for you in this fascinating world of SQL.