C語言通過MySQL API連接MySQL數據庫,可以方便地獲取MySQL的執行語句時間。
#include <stdio.h> #include <stdlib.h> #include <mysql.h> int main(int argc, char **argv) { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "root"; char *password = "123456"; char *database = "test"; char sql[200]; int ret; conn = mysql_init(NULL); if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); mysql_close(conn); exit(1); } sprintf(sql, "SELECT * FROM `user` WHERE `name`='test'"); clock_t start, end; double duration; start = clock(); ret = mysql_query(conn, sql); end = clock(); duration = (double)(end - start) / CLOCKS_PER_SEC; printf("mysql_query duration: %lf s\n", duration); if (ret) { fprintf(stderr, "%s\n", mysql_error(conn)); } else { res = mysql_use_result(conn); while ((row = mysql_fetch_row(res)) != NULL) { printf("%s %s\n", row[0], row[1]); } mysql_free_result(res); } mysql_close(conn); exit(0); }
在上面的代碼中,我們使用了clock函數來獲取查詢的執行時間,具體地說,我們記錄下查詢開始的時間start,然后執行查詢操作,并記錄下查詢結束的時間end,最后通過時鐘周期常數CLOCKS_PER_SEC計算出程序運行時間duration。它的單位是秒。
使用這種方法可以很方便地查看各種查詢操作的執行時間,從而調整程序以提高性能。