首页 > 编程知识 正文

常用mysql语句,oracle解锁表语句

时间:2023-05-04 20:02:09 阅读:39336 作者:4412

processlist命令的输出结果有助于指示哪些线程正在运行,并识别有问题的查询语句。 此命令有两种方法使用。

导航到mysql/jldyd目录,然后输入MySQL管理员流程列表;

启动mysql并输入show processlist;

有了SUPER权限,就可以看到所有线程。 否则,您只能看到自己启动的线程(这是指当前相应MySQL帐户正在运行的线程)。

得到的数据格式如下(只剪切了3条) :

mysql show processlist;

------------- -请参阅

id主机命令时间状态

------------- -请参阅

| 207 |根| 192.168.0.20336051718|mytest|sleep|5|| null

| 208 |根| 192.168.0.20336051719|mytest|sleep|5||空

| 220 |根| 192.168.0.20336051731|mytest|query|84 |锁定|

选择bookname、culture、value、type from book where id=001

首先,简要说明各列的含义和用途。 第一列,id当然是吧。 在kill一个标记、一个语句时很有用。 用户列,显示单个原始用户。 如果不是root,则此命令只显示您权限范围内的sql语句。 主机列。 指示此语句是从哪个ip的哪个端口发出的。 呵呵,可以用来跟踪发出问句的用户。 表示此进程当前连接到哪个数据库的数据库列。 命令列是表示当前连接执行的命令,一般是休眠(sleep )、查询(creen )、连接)。 time列,此状态持续的时间,单位为秒。 state列指示正在使用当前连接的sql语句的状态。 一个重要列,后跟所有状态的说明。 请注意,state是语句正在执行的一个状态,一个sql语句,并且可能需要通过copying to tmp table、Sorting result和sendingdding (以查询为例)

此命令中最重要的是state列,mysql中列出的状态主要有:

检查表

正在检查数据表(这是自动的)。

关闭表

将表中的更改数据刷新到磁盘,并关闭已使用的表。 这是非常迅速的操作。 否则,必须检查磁盘空间是否已满,或者磁盘是否不堪重负。

连接输出

复制从服务器已连接到主服务器。

复制到tmp table on disk

由于临时结果集大于tmp_table_size,因此正在将临时表从内存存储转换为磁盘存储以节省内存。

创建tmp表

正在创建包含部分查询结果的临时表。

deleting from main table

服务器正在执行多表删除的第一部分。 我刚删除了第一张表。

来自定义参考表

服务器正在执行多表删除的第二部分,正在删除其他表中的记录。

流体表

正在运行FLUSH TABLES,等待其他线程关闭数据表。

杀手乐队

向一个线程发送技能请求时,该线程将检查技能标志位并放弃下一个技能请求。 MySQL在每次主循环中检查kill标志位,但在某些情况下,线程可能会稍微过多而死亡。 如果线程被其他线程锁定,kill请求将在解除锁定后立即生效。

摇滚乐队

已锁定到其他查询。

发送数据

正在处理Select查询的记录并将结果发送到客户端。

Sorting for group

正在对GROUP BY进行排序。

为订单排序

正在对订单依据进行排序。

Opening tables

这个过程应该很快

,除非受到其他因素的干扰。例如,在执Alter TABLE或LOCK TABLE语句行完以前,数据表无法被其他线程打开。正尝试打开一个表。

Removing duplicates

正在执行一个Select DISTINCT方式的查询,但是MySQL无法在前一个阶段优化掉那些重复的记录。因此,MySQL需要再次去掉重复的记录,然后再把结果发送给客户端。

Reopen table

获得了对一个表的锁,但是必须在表结构修改之后才能获得这个锁。已经释放锁,关闭数据表,正尝试重新打开数据表。

Repair by sorting

修复指令正在排序以创建索引。

Repair with keycache

修复指令正在利用索引缓存一个一个地创建新索引。它会比Repair by sorting慢些。

Searching rows for update

正在讲符合条件的记录找出来以备更新。它必须在Update要修改相关的记录之前就完成了。

Sleeping

正在等待客户端发送新请求.

System lock

正在等待取得一个外部的系统锁。如果当前没有运行多个mysqld服务器同时请求同一个表,那么可以通过增加--skip-external-locking参数来禁止外部系统锁。

Upgrading lock

Insert DELAYED正在尝试取得一个锁表以插入新记录。

Updating

正在搜索匹配的记录,并且修改它们。

User Lock

正在等待GET_LOCK()。

Waiting for tables

该线程得到通知,数据表结构已经被修改了,需要重新打开数据表以取得新的结构。然后,为了能的重新打开数据表,必须等到所有其他线程关闭这个表。以下几种情况下会产生这个通知:FLUSH TABLES tbl_name, Alter TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE,或OPTIMIZE TABLE。

waiting for handler insert

Insert DELAYED已经处理完了所有待处理的插入操作,正在等待新的请求。

大部分状态对应很快的操作,只要有一个线程保持同一个状态好几秒钟,那么可能是有问题发生了,需要检查一下。

还有其他的状态没在上面中列出来,不过它们大部分只是在查看服务器是否有存在错误是才用得着。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。