MySQL 8.0 是 MySQL 5.7 的後續版本,中間的 6.0 與 7.0 都有一些故事,就被跳過去了,跟 PHP 的情況有點像。
在 8.0 版將會把 performance_schamea
加上 index,讓查詢的速度變快:「MySQL 8.0: Performance Schema, now with indexes!」:
In MySQL 8.0, performance_schema tables are now indexed to speed up data retrieval.
A total of 115 indexes have been added in the performance schema in MySQL 8.0.0, to support better data access patterns in general.
有用過 performance_schema
的人都會有種「這好慢啊」的感覺,總算要改善了... 而且這幾乎是沒什麼成本的改善:
Question: How much overhead was just added by this new feature?
Answer: Absolutely zero
並不是用 index 加快速度,而是加了一些資訊,修正 optimizer 的行為:
It does — not — maintain a physical index internally, be it on file or memory.
It does, however, — pretend — to the optimizer that it has indexes, so that the optimizer is coerced into using the most efficient access pattern.
在有些情況下可以看到會快非常的多:
The performance improvements from indexes can be very easily seen in many of the sys schema queries. With 1000 idle threads, the query SELECT * FROM sys.session
drops from 34.70 seconds down to 1.01 seconds (a 30x improvement!):
不知道 Percona 會不會 backport 回來,這看起來對於爆炸中的 server 找問題會很有幫助,可以在短時間翻出是哪個部份爆炸...