Rumah pangkalan data tutorial mysql mysql 显示SQL语句执行时间的代码

mysql 显示SQL语句执行时间的代码

Jun 07, 2016 pm 06:01 PM
mysql Masa pelaksanaan

查看 MySQL 語法 詳細執行時間 與 CPU/記憶體使用量: MySQL Query Profiler

MySQL 的 SQL 語法調整主要都是使用 EXPLAIN , 但是這個並沒辦法知道詳細的 Ram(Memory)/CPU 等使用量.

於 MySQL 5.0.37 以上開始支援 MySQL Query Profiler, 可以查詢到此 SQL 會執行多少時間, 並看出 CPU/Memory 使用量, 執行過程中 System lock, Table lock 花多少時間等等.

MySQL Query Profile 詳細介紹可見: Using the New MySQL Query Profiler (2007.04.05 發表)

效能分析主要分下述三種(轉載自上篇):

Bottleneck analysis - focuses on answering the questions: What is my database server waiting on; what is a user connection waiting on; what is a piece of SQL code waiting on?
Workload analysis - examines the server and who is logged on to determine the resource usage and activity of each.
Ratio-based analysis - utilizes a number of rule-of-thumb ratios to gauge performance of a database, user connection, or piece of code.
MySQL Query Profile 使用方法
啟動
mysql> set profiling=1; # 此命令於 MySQL 會於 information_schema 的 database 建立一個 PROFILING 的 table 來紀錄.
SQL profiles show
mysql> show profiles; # 從啟動之後所有語法及使用時間, 含錯誤語法都會紀錄.
ex: () [test]> show profiles; # 注意 Query_ID, 下面執行時間統計等, 都是依 Query_ID 在紀錄

+----------+------------+---------------------------+
| Query_ID | Duration | Query |
+----------+------------+---------------------------+
| 1 | 0.00090400 | show profile for query 1 |
| 2 | 0.00008700 | select * from users |
| 3 | 0.00183800 | show tables |
| 4 | 0.00027600 | mysql> show profiles |
+----------+------------+---------------------------+
查詢所有花費時間加總
mysql> select sum(duration) from information_schema.profiling where query_id=1; # Query ID = 1

+---------------+
| sum(duration) |
+---------------+
| 0.000447 |
+---------------+
查詢各執行階段花費多少時間
mysql> show profile for query 1; # Query ID = 1

+--------------------+------------+
| Status | Duration |
+--------------------+------------+
| (initialization) | 0.00006300 |
| Opening tables | 0.00001400 |
| System lock | 0.00000600 |
| Table lock | 0.00001000 |
| init | 0.00002200 |
| optimizing | 0.00001100 |
| statistics | 0.00009300 |
| preparing | 0.00001700 |
| executing | 0.00000700 |
| Sending data | 0.00016800 |
| end | 0.00000700 |
| query end | 0.00000500 |
| freeing items | 0.00001200 |
| closing tables | 0.00000800 |
| logging slow query | 0.00000400 |
+--------------------+------------+
查詢各執行階段花費的各種資源列表
mysql> show profile cpu for query 1; # Query ID = 1

+--------------------------------+----------+----------+------------+
| Status | Duration | CPU_user | CPU_system |
+--------------------------------+----------+----------+------------+
| (initialization) | 0.000007 | 0 | 0 |
| checking query cache for query | 0.000071 | 0 | 0 |
| Opening tables | 0.000024 | 0 | 0 |
| System lock | 0.000014 | 0 | 0 |
| Table lock | 0.000055 | 0.001 | 0 |
| init | 0.000036 | 0 | 0 |
| optimizing | 0.000013 | 0 | 0 |
| statistics | 0.000021 | 0 | 0 |
| preparing | 0.00002 | 0 | 0 |
| executing | 0.00001 | 0 | 0 |
| Sending data | 0.015072 | 0.011998 | 0 |
| end | 0.000021 | 0 | 0 |
| query end | 0.000011 | 0 | 0 |
| storing result in query cache | 0.00001 | 0 | 0 |
| freeing items | 0.000018 | 0 | 0 |
| closing tables | 0.000019 | 0 | 0 |
| logging slow query | 0.000009 | 0 | 0 |
+--------------------------------+----------+----------+------------+
mysql> show profile IPC for query 1;

+--------------------------------+----------+---------------+-------------------+
| Status | Duration | Messages_sent | Messages_received |
+--------------------------------+----------+---------------+-------------------+
| (initialization) | 0.000007 | 0 | 0 |
| checking query cache for query | 0.000071 | 0 | 0 |
| Opening tables | 0.000024 | 0 | 0 |
| System lock | 0.000014 | 0 | 0 |
| Table lock | 0.000055 | 0 | 0 |
| init | 0.000036 | 0 | 0 |
| optimizing | 0.000013 | 0 | 0 |
| statistics | 0.000021 | 0 | 0 |
| preparing | 0.00002 | 0 | 0 |
| executing | 0.00001 | 0 | 0 |
| Sending data | 0.015072 | 0 | 0 |
| end | 0.000021 | 0 | 0 |
| query end | 0.000011 | 0 | 0 |
| storing result in query cache | 0.00001 | 0 | 0 |
| freeing items | 0.000018 | 0 | 0 |
| closing tables | 0.000019 | 0 | 0 |
| logging slow query | 0.000009 | 0 | 0 |
+--------------------------------+----------+---------------+-------------------+
其它屬性列表
ALL - displays all information
BLOCK IO - displays counts for block input and output operations
CONTEXT SWITCHES - displays counts for voluntary and involuntary context switches
IPC - displays counts for messages sent and received
MEMORY - is not currently implemented
PAGE FAULTS - displays counts for major and minor page faults
SOURCE - displays the names of functions from the source code, together with the name and line number of the file in which the function occurs
SWAPS - displays swap counts
設定 Profiling 存的 Size
mysql> show variables where variable_name='profiling_history_size'; # 預設是 15筆
關閉
mysql> set profiling=0;

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
<🎜> obscur: Ekspedisi 33 - Cara mendapatkan pemangkin Chroma yang sempurna
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1677
14
Tutorial PHP
1278
29
Tutorial C#
1257
24
Contoh Pengenalan Laravel Contoh Pengenalan Laravel Apr 18, 2025 pm 12:45 PM

Laravel adalah rangka kerja PHP untuk membina aplikasi web yang mudah. Ia menyediakan pelbagai ciri yang kuat termasuk: Pemasangan: Pasang Laravel CLI secara global dengan komposer dan buat aplikasi dalam direktori projek. Routing: Tentukan hubungan antara URL dan pengendali dalam laluan/web.php. Lihat: Buat pandangan dalam sumber/pandangan untuk menjadikan antara muka aplikasi. Integrasi Pangkalan Data: Menyediakan integrasi keluar-of-the-box dengan pangkalan data seperti MySQL dan menggunakan penghijrahan untuk membuat dan mengubah suai jadual. Model dan Pengawal: Model mewakili entiti pangkalan data dan proses pengawal permintaan HTTP.

MySQL dan PHPMyAdmin: Ciri dan Fungsi Teras MySQL dan PHPMyAdmin: Ciri dan Fungsi Teras Apr 22, 2025 am 12:12 AM

MySQL dan phpmyadmin adalah alat pengurusan pangkalan data yang kuat. 1) MySQL digunakan untuk membuat pangkalan data dan jadual, dan untuk melaksanakan pertanyaan DML dan SQL. 2) Phpmyadmin menyediakan antara muka intuitif untuk pengurusan pangkalan data, pengurusan struktur meja, operasi data dan pengurusan kebenaran pengguna.

Mysql vs Bahasa Pengaturcaraan Lain: Perbandingan Mysql vs Bahasa Pengaturcaraan Lain: Perbandingan Apr 19, 2025 am 12:22 AM

Berbanding dengan bahasa pengaturcaraan lain, MySQL digunakan terutamanya untuk menyimpan dan mengurus data, manakala bahasa lain seperti Python, Java, dan C digunakan untuk pemprosesan logik dan pembangunan aplikasi. MySQL terkenal dengan prestasi tinggi, skalabilitas dan sokongan silang platform, sesuai untuk keperluan pengurusan data, sementara bahasa lain mempunyai kelebihan dalam bidang masing-masing seperti analisis data, aplikasi perusahaan, dan pengaturcaraan sistem.

Kaedah pemasangan kerangka Laravel Kaedah pemasangan kerangka Laravel Apr 18, 2025 pm 12:54 PM

Ringkasan Artikel: Artikel ini menyediakan arahan langkah demi langkah terperinci untuk membimbing pembaca tentang cara memasang rangka kerja Laravel dengan mudah. Laravel adalah rangka kerja PHP yang kuat yang mempercepat proses pembangunan aplikasi web. Tutorial ini merangkumi proses pemasangan dari keperluan sistem untuk mengkonfigurasi pangkalan data dan menyediakan penghalaan. Dengan mengikuti langkah -langkah ini, pembaca dapat dengan cepat dan cekap meletakkan asas yang kukuh untuk projek Laravel mereka.

Terangkan tujuan kunci asing di MySQL. Terangkan tujuan kunci asing di MySQL. Apr 25, 2025 am 12:17 AM

Di MySQL, fungsi kunci asing adalah untuk mewujudkan hubungan antara jadual dan memastikan konsistensi dan integriti data. Kekunci asing mengekalkan keberkesanan data melalui pemeriksaan integriti rujukan dan operasi cascading. Perhatikan pengoptimuman prestasi dan elakkan kesilapan biasa apabila menggunakannya.

Bandingkan dan kontras MySQL dan Mariadb. Bandingkan dan kontras MySQL dan Mariadb. Apr 26, 2025 am 12:08 AM

Perbezaan utama antara MySQL dan MariaDB adalah prestasi, fungsi dan lesen: 1. MySQL dibangunkan oleh Oracle, dan Mariadb adalah garpu. 2. MariaDB boleh melakukan lebih baik dalam persekitaran beban tinggi. 3.MariADB menyediakan lebih banyak enjin dan fungsi penyimpanan. 4.MYSQL mengamalkan lesen dua, dan MariaDB adalah sumber terbuka sepenuhnya. Infrastruktur yang sedia ada, keperluan prestasi, keperluan fungsional dan kos lesen perlu diambil kira apabila memilih.

SQL vs MySQL: menjelaskan hubungan antara kedua -dua SQL vs MySQL: menjelaskan hubungan antara kedua -dua Apr 24, 2025 am 12:02 AM

SQL adalah bahasa standard untuk menguruskan pangkalan data relasi, manakala MySQL adalah sistem pengurusan pangkalan data yang menggunakan SQL. SQL mentakrifkan cara untuk berinteraksi dengan pangkalan data, termasuk operasi CRUD, sementara MySQL melaksanakan standard SQL dan menyediakan ciri -ciri tambahan seperti prosedur dan pencetus yang disimpan.

Perisian apa yang lebih baik untuk kerangka Yi? Perisian yang disyorkan untuk Rangka Kerja YI Perisian apa yang lebih baik untuk kerangka Yi? Perisian yang disyorkan untuk Rangka Kerja YI Apr 18, 2025 pm 11:03 PM

Abstrak perenggan pertama artikel: Apabila memilih perisian untuk membangunkan aplikasi rangka kerja YI, pelbagai faktor perlu dipertimbangkan. Walaupun alat pembangunan aplikasi mudah alih asli seperti Xcode dan Android Studio dapat memberikan kawalan dan fleksibiliti yang kukuh, rangka kerja silang platform seperti React Native dan Flutter menjadi semakin popular dengan manfaat yang dapat digunakan ke pelbagai platform sekaligus. Bagi pemaju yang baru untuk pembangunan mudah alih, kod rendah atau platform tidak kod seperti AppSheet dan Glide dapat dengan cepat dan mudah membina aplikasi. Di samping itu, penyedia perkhidmatan awan seperti AWS menguatkan dan Firebase menyediakan alat yang komprehensif

See all articles