<p>Some of the performance-related things you can objectively compare between different databases:</p>

<ul>
<li>IO complexity and computational complexity of different queries. E.g. there are different ways to do joins, sorting, different kinds of indices (including "no indices"), with objectively different asymptotic complexity. There are also column-oriented and row-oriented ways of organizing data, with different complexity of fetching a subset of columns.</li>
<li>Caching behavior: is there a performance cliff when the data stops fitting in a particular level of memory hierarchy (e.g. in RAM), or does it degrade gracefully? The second kind is called "cache-oblivious"; one example is <a href="http://en.wikipedia.org/wiki/TokuDB" rel="nofollow">TokuDB</a>.</li>
<li>Presence or absence of certain types of concurrency or conflict resolution in transaction processing: e.g. if the database doesn't support MVCC, then it cannot concurrently execute transactions reading or affecting the same row.</li>
<li>For distributed databases, you can look at how consensus between replicas is achieved, and when is an update considered "done" (acknowledged) - this has huge impact on read/write throughput and latency. See e.g. <a href="http://wiki.apache.org/cassandra/ArchitectureOverview" rel="nofollow">Cassandra architecture overview</a> for the "R + W > N" rule (I don't have an academic source on the top of my head); for a radically different approach, look at Google's Spanner.</li>
</ul>

<p>Hope this helps.</p>

CC BY-SA 3.0
2015-02-21T22:53:53.070Z
2015-02-21T22:53:53.070Z
jkff
<p>The basic and most important part of database performances are not the time spend into the machine, but most globally all the resources consumed to give the right answer to a query...</p>
<p>Because resources must be shared between many users, a query than will run two time faster but consuming three time more resources won't be efficient...</p>
<p>The bascic metrics are CPU and memory consumption. About disk IOs this is not the most important part because of data caching, but can be a pitfull for some secial operations (big sorts or groupings).</p>

CC BY-SA 4.0
2024-06-20T16:37:37.590Z
2024-06-20T16:37:37.590Z
SQLpro
<p>I'm a student working on my thesis in database theory and looking for some research in the field of formal models of database performance and couldn't find any works in this area. I'm interested: what are the most fundamental database performance parameters and mathematical criterions for the next things: transaction execution, query performance and efficiency (evaluation, parsing, execution) and maybe some more and not just: "this query takes 50 ms to run". I want to formulate fundamental (mathematical) performance criterions, which I can use to compare on the most general (abstract) way different database models and technologies.</p>

<db.databases><query-complexity><formal-modeling><formal-methods><relational-structures>
What are the most fundamental metrics (criterions) of database performance?
MainstreamDeveloper00
# What are the most fundamental metrics (criterions) of database performance?

(Asked by: username_0 on 2015-02-19)

I'm a student working on my thesis in database theory and looking for some research in the field of formal models of database performance and couldn't find any works in this area. I'm interested: what are the most fundamental database performance parameters and mathematical criterions for the next things: transaction execution, query performance and efficiency (evaluation, parsing, execution) and maybe some more and not just: "this query takes 50 ms to run". I want to formulate fundamental (mathematical) performance criterions, which I can use to compare on the most general (abstract) way different database models and technologies.

**Tags:** db.databases, query-complexity, formal-modeling, formal-methods, relational-structures

---

## 2 answers

### Answer by username_1 on 2015-02-21. Score: 2 | Accepted answer

Some of the performance-related things you can objectively compare between different databases:

* IO complexity and computational complexity of different queries. E.g. there are different ways to do joins, sorting, different kinds of indices (including "no indices"), with objectively different asymptotic complexity. There are also column-oriented and row-oriented ways of organizing data, with different complexity of fetching a subset of columns.
* Caching behavior: is there a performance cliff when the data stops fitting in a particular level of memory hierarchy (e.g. in RAM), or does it degrade gracefully? The second kind is called "cache-oblivious"; one example is [TokuDB](http://en.wikipedia.org/wiki/TokuDB).
* Presence or absence of certain types of concurrency or conflict resolution in transaction processing: e.g. if the database doesn't support MVCC, then it cannot concurrently execute transactions reading or affecting the same row.
* For distributed databases, you can look at how consensus between replicas is achieved, and when is an update considered "done" (acknowledged) - this has huge impact on read/write throughput and latency. See e.g. [Cassandra architecture overview](http://wiki.apache.org/cassandra/ArchitectureOverview) for the "R + W > N" rule (I don't have an academic source on the top of my head); for a radically different approach, look at Google's Spanner.

Hope this helps.


---

### Answer by username_2 on 2024-06-20. Score: 0

The basic and most important part of database performances are not the time spend into the machine, but most globally all the resources consumed to give the right answer to a query...

Because resources must be shared between many users, a query than will run two time faster but consuming three time more resources won't be efficient...

The bascic metrics are CPU and memory consumption. About disk IOs this is not the most important part because of data caching, but can be a pitfull for some secial operations (big sorts or groupings).


---

