[MDEV-22324] Benchmark parts of query-processing Created: 2020-04-21  Updated: 2021-09-16

Status: Open
Project: MariaDB Server
Component/s: OTHER
Fix Version/s: None

Type: Task Priority: Critical
Reporter: Oleksandr Byelkin Assignee: Michael Widenius
Resolution: Unresolved Votes: 2
Labels: benchmarking

Issue Links:
Blocks
blocks MDEV-16670 Improve execute direct (prepare and e... Open

 Description   

For optimization of query processing in general, as well as for MDEV-16670 particularly we need to know how much time took each part of query processing for simple queries (no optimisation and no big joins). I think we can split processing on such phases:

1) parsing
2) open and lock tables (common overhead and per table)
2.1) simple queries
2.2) if simple trigger involved (prelocking opening trigger and so on)
3) prepare
4) optimization
5) execution and sending results (if possible sending reults separately for localhost connection)
6) closing tables
7) cleanup

It would be nice to check
a) simple selects (for 1 row and 2 row MyISAM tables)
SELECT a from t1;
SELECT a from t1, t2 where t1.primary_key= t2.primary_key;
SELECT a from t1, t2, t3 where t1.primary_key= t2.primary_key and t2.primary_key= t3.primary_key;
... so on
b) simple update:
UPDATE t1 SET a=1;

c) simple delete
DELETE FROM t1 where a=1; (we need condition to prevent turning it to truncate)

e) (lower priority) multi delete and multi-update which are specific SELECTs (interesting to see how it compared to simple UPDATE and usual SELECT.

Also it is interesting to compare 5.5 and 10.5 to see if we have much regress for simple queries at all (and find it if we really have it a lot).


Generated at Thu Feb 08 09:13:52 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.