mysql - mysql中sys.session的pid列什么时候将为空?

标签 mysql session pid sys

我正在使用 mysql 5.7.19-log 服务器,我正在开发应用程序监视工具,我需要监视 mysql 服务器的 session 详细信息。在这个过程中了解到sys.session表中的pid列可以为空。我想知道什么情况下pid可以为空?

当我在 mysql shell 中执行 desc session 时,结果如下:

mysql>desc session;
+------------------------+------------------------------------------+------+-----+---------+-------+
| Field                  | Type                                     | Null | Key | Default | Extra |
+------------------------+------------------------------------------+------+-----+---------+-------+
| thd_id                 | bigint(20) unsigned                      | NO   |     | NULL    |       |
| conn_id                | bigint(20) unsigned                      | YES  |     | NULL    |       |
| user                   | varchar(128)                             | YES  |     | NULL    |       |
| db                     | varchar(64)                              | YES  |     | NULL    |       |
| command                | varchar(16)                              | YES  |     | NULL    |       |
| state                  | varchar(64)                              | YES  |     | NULL    |       |
| time                   | bigint(20)                               | YES  |     | NULL    |       |
| current_statement      | longtext                                 | YES  |     | NULL    |       |
| statement_latency      | text                                     | YES  |     | NULL    |       |
| progress               | decimal(26,2)                            | YES  |     | NULL    |       |
| lock_latency           | text                                     | YES  |     | NULL    |       |
| rows_examined          | bigint(20) unsigned                      | YES  |     | NULL    |       |
| rows_sent              | bigint(20) unsigned                      | YES  |     | NULL    |       |
| rows_affected          | bigint(20) unsigned                      | YES  |     | NULL    |       |
| tmp_tables             | bigint(20) unsigned                      | YES  |     | NULL    |       |
| tmp_disk_tables        | bigint(20) unsigned                      | YES  |     | NULL    |       |
| full_scan              | varchar(3)                               | NO   |     |         |       |
| last_statement         | longtext                                 | YES  |     | NULL    |       |
| last_statement_latency | text                                     | YES  |     | NULL    |       |
| current_memory         | text                                     | YES  |     | NULL    |       |
| last_wait              | varchar(128)                             | YES  |     | NULL    |       |
| last_wait_latency      | text                                     | YES  |     | NULL    |       |
| source                 | varchar(64)                              | YES  |     | NULL    |       |
| trx_latency            | text                                     | YES  |     | NULL    |       |
| trx_state              | enum('ACTIVE','COMMITTED','ROLLED BACK') | YES  |     | NULL    |       |
| trx_autocommit         | enum('YES','NO')                         | YES  |     | NULL    |       |
| pid                    | varchar(1024)                            | YES  |     | NULL    |       |
| program_name           | varchar(1024)                            | YES  |     | NULL    |       |
+------------------------+------------------------------------------+------+-----+---------+-------+
28 rows in set (0.00 sec)```

最佳答案

在屏幕截图中,您需要检查名称为 Null 的列。它表示某个字段的值是否可以为空。在您的情况下,pid 可以为 null,因为根据表的描述,pid 允许 Null

遵循pid可能为null的情况。

    1. pid 插入为 null
 INSERT INTO session (pid, program_name) values (null, 'test1'); // pid: null
  • 不要插入pid
 INSERT INTO session (program_name) values ('test1'); // pid: null
  • pid 更新为 null
 UPDATE session SET pid = null WHERE `thd_id` = 1; // pid: null

关于mysql - mysql中sys.session的pid列什么时候将为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57693582/

相关文章:

php - 如何在 PHP 中重用 selenium session ?

asp.net - 比 session 更持久?

java - 如何触发 java 关闭 Hook 以保持运行进程?

php - 使用 php 从 mysql 中的计划表中检索现在之后发生的三个下一次(在列中)

mysql - 为什么向我的查询添加 WHERE 语句(在具有索引的列上)会使我的运行时间从几秒增加到几分钟?

mysql - 将 mysql 输出从行转换为列

php - laravel5.1 使用 eloquent 检索不直接相关的属性

java - JSch/Java - 检测断开连接的服务器的正确方法

c - waitpid 返回 pid=0 和 WIFEXITED=1 如何获取 pid?

linux - 获取使用 sshpass 启动的远程进程的 PID