mysql查看表结构 extra是什么意思

mysql查看表结构 extra是什么意思,第1张

项目开发时候要看着表结构写,实在是受不了phpmyadmin或者是navicat,就用qt写了一个看表结构的小玩意,主要是看表字段的注释。

使用过程中发现过一段时间,连接就会被mysqld自动断开,就在每次查询前多执行一个“select 1”,反正是开发时候用,浪费资源就浪费吧。

1 #include <QApplication>

2 #include "mainwindow.h"

3

4 int main(int argc, char *argv[])

5 {

6 QApplication a(argc, argv)

7 MainWindow w

8 w.show()

9

10 return a.exec()

11 }

1 #ifndef MAINWINDOW_H

2 #define MAINWINDOW_H

3

4 #include <QtGui>

5 #include <QtSql>

6

7 class MainWindow : public QMainWindow

8 {

9 Q_OBJECT

10

11 public:

12 MainWindow(QWidget *parent = 0)

13 ~MainWindow()

14

15 private slots:

16 void databaseRefleshActionTriggered()

17

18 void tableRefleshActionTriggered()

19 void tableActionGroupTriggered(QAction *)

20

21 void removeTab(int i)

22 {

23 tabWidget->removeTab(i)

24 }

25

26 private:

27 QSqlQuery *query(const QString &sql)

28 {

29 if ((!db.isOpen() || !QSqlQuery("select 1", db).isActive()) &&!db.open())

30 QMessageBox::warning(this, "Error", db.lastError().text())

31

32 return new QSqlQuery(sql, db)

33 }

34

35 private:

36 QWidget *widget

37 QVBoxLayout *layout

38 QTabWidget *tabWidget

39 QMap<QString, QTableView *>commentViews

40

41 QMenu *databaseMenu

42 QAction *databaseRefleshAction

43 QActionGroup *databaseActionGroup

44

45 QMenu *tableMenu

46 QAction *tableRefleshAction

47 QActionGroup *tableActionGroup

48

49 QSqlDatabase db

50 }

51

52 #endif // MAINWINDOW_H

extra列中出现的信息一般不是太重要,但是还是有很多信息我们可以从这里面获取到:

using index:出现这个说明mysql使用了覆盖索引,避免访问了表的数据行,效率不错!

using where:这说明服务器在存储引擎收到行后将进行过滤。有些where中的条件会有属于索引的列,当它读取使用索引的时候,就会被过滤,所以会出现有些where语句并没有在extra列中出现using where这么一个说明。

using temporary:这意味着mysql对查询结果进行排序的时候使用了一张临时表。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8403183.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存