mysql query profile_MySQL Query Profile 简单使用

MySQL Query Profile MySQL 5.0.37 以上开始支持 MySQL Query Profiler, 可以查询到此 SQL 会执行多少时间, 并看出 CPU/Memory 使用量, 执行过程中 System lock, Table lock 花多少时间等等. 详细可以参见官方文档:http://dev.mysql.com/tech-resources/art

MySQL Query Profile MySQL 5.0.37 以上开始支持 MySQL Query Profiler, 可以查询到此 SQL 会执行多少时间, 并看出 CPU/Memory 使用量, 执行过程中 System lock, Table lock 花多少时间等等.

详细可以参见官方文档:http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html

启动

mysql> set profiling=1;

Query OK, 0 rows affected (0.00 sec)

测试查询

mysql> select count(*) from client where broker_id=2;

+----------+

| count(*) |

+----------+

| 200 |

+----------+

1 row in set (0.00 sec)

查看profiles

mysql> show profiles;

+----------+------------+-----------------------------------------------+

| Query_ID | Duration | Query |

+----------+------------+-----------------------------------------------+

| 0 | 0.00007300 | set profiling=1 |

| 1 | 0.00044700 | select count(*) from client where broker_id=2 |

+----------+------------+-----------------------------------------------+

2 rows in set (0.00 sec)

查看单条profile

mysql> show profile for query 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 |

+--------------------+------------+

15 rows in set (0.00 sec)

mysql> alter table t engine=myisam;

Query OK, 112050 rows affected (0.64 sec)

Records: 112050 Duplicates: 0 Warnings: 0

mysql> show profiles;

+----------+------------+-----------------------------------------------+

| Query_ID | Duration | Query |

+----------+------------+-----------------------------------------------+

| 0 | 0.00007300 | set profiling=1 |

| 1 | 0.00044700 | select count(*) from client where broker_id=2 |

| 2 | 0.00003400 | set profiling=0 |

| 3 | 0.00007400 | set profiling=1 |

| 4 | 0.63789700 | alter table t engine=myisam |

| 5 | 0.00004000 | set profiling=0 |

+----------+------------+-----------------------------------------------+

6 rows in set (0.00 sec)

mysql> show profile for query 4;

+----------------------+------------+

| Status | Duration |

+----------------------+------------+

| (initialization) | 0.00002900 |

| checking permissions | 0.00000800 |

| init | 0.00004000 |

| Opening table | 0.00009400 |

| System lock | 0.00000500 |

| Table lock | 0.00000700 |

| setup | 0.00004200 |

| creating table | 0.00195800 |

| After create | 0.00010900 |

| copy to tmp table | 0.52264500 |

| rename result table | 0.11289400 |

| end | 0.00004600 |

| query end | 0.00000700 |

| freeing items | 0.00001300 |

+----------------------+------------+

14 rows in set (0.00 sec)

查看cpu资源等信息

mysql> show profile cpu for query 4;

+----------------------+------------+------------+------------+

| Status | Duration | CPU_user | CPU_system |

+----------------------+------------+------------+------------+

| (initialization) | 0.00002900 | 0.00000000 | 0.00000000 |

| checking permissions | 0.00000800 | 0.00000000 | 0.00000000 |

| init | 0.00004000 | 0.00000000 | 0.00000000 |

| Opening table | 0.00009400 | 0.00100000 | 0.00000000 |

| System lock | 0.00000500 | 0.00000000 | 0.00000000 |

| Table lock | 0.00000700 | 0.00000000 | 0.00000000 |

| setup | 0.00004200 | 0.00000000 | 0.00000000 |

| creating table | 0.00195800 | 0.00000000 | 0.00100000 |

| After create | 0.00010900 | 0.00000000 | 0.00000000 |

| copy to tmp table | 0.52264500 | 0.55591600 | 0.04199300 |

| rename result table | 0.11289400 | 0.00199900 | 0.00000000 |

| end | 0.00004600 | 0.00000000 | 0.00000000 |

| query end | 0.00000700 | 0.00000000 | 0.00000000 |

| freeing items | 0.00001300 | 0.00000000 | 0.00000000 |

+----------------------+------------+------------+------------+

14 rows in set (0.00 sec)

其他属性列表

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值