版权所有1997-2021 PHP文档组。10bet官方网站
这些功能的行为受到设置的影响php . ini
.
表7.25 MySQL本地驱动配置选项
的名字 | 默认 | 多变的 | 更新日志 |
---|---|---|---|
mysqlnd.collect_statistics | “1” | PHP_INI_SYSTEM | |
mysqlnd.collect_memory_statistics | “0” | PHP_INI_SYSTEM | |
mysqlnd.debug | “ | PHP_INI_SYSTEM | |
mysqlnd.log_mask | 0. | PHP_INI_ALL | |
mysqlnd.mempool_default_size | 16000 | PHP_INI_ALL | |
mysqlnd.net_read_timeout | “86400” | PHP_INI_ALL | 在PHP 7.2.0之前,默认值是“31536000”,可更改性是PHP_INI_SYSTEM |
mysqlnd.net_cmd_buffer_size | “4096” | PHP_INI_SYSTEM | |
mysqlnd.net_read_buffer_size. | “32768” | PHP_INI_SYSTEM | |
mysqlnd.sha256_server_public_key | “ | php_ini_perdir. | |
mysqlnd.trace_alloc | “ | PHP_INI_SYSTEM | |
mysqlnd.fetch_data_copy | 0. | PHP_INI_ALL |
有关PHP_INI_*模式的详细信息和定义,请参见http://www.php.net/manual/en/configuration.changes.modes..
下面是配置指令的简短说明。
-
mysqlnd.collect_statistics
保龄球 -
启用可以通过的各种客户端统计信息
mysqli_get_client_stats
那mysqli_get_connection_stats.
,并显示在mysqlnd
的输出部分phpinfo
功能也是如此。此配置设置启用全部MySQL本地驱动统计除了与内存管理有关的那些。
-
mysqlnd.collect_memory_statistics
保龄球 -
启用可以通过访问的各种内存统计信息的收集
mysqli_get_client_stats
那mysqli_get_connection_stats.
,并显示在mysqlnd
的输出部分phpinfo
功能也是如此。集合中的内存管理统计信息MySQL本地驱动统计.
-
mysqlnd.debug
字符串 -
记录来自所有扩展使用的通信
mysqlnd
到指定的日志文件。指令的格式是
mysqlnd.debug = " option1 [, parameter_option1] [: option2 [, parameter_option2]]”
.格式字符串的选项如下:
a [,file] - 将跟踪输出附加到指定的文件。还可以确保在每次写入后写入数据。这是通过关闭和重新打开跟踪文件(这缓慢)完成的。它有助于确保应用程序崩溃,确保完整的日志文件。
a [,file] - 将跟踪输出附加到指定的文件。
d -启用从DBUG_
宏输出当前状态。可能后面是一个关键字列表,它只选择带有该关键字的dbg宏的输出。空的关键字列表意味着输出所有宏。 f[,functions] -将调试器的操作限制在指定的函数列表中。一个空的函数列表意味着所有的函数都被选中。
用包含导致输出的宏的源文件的名称标记每个调试器输出行。
用当前进程的PID标记调试器的每一行输出。
L -用导致输出的宏的源文件行号标记每个调试器输出行。
将每个调试器输出行标记为当前函数嵌套深度
o[,file]—类似于[,file],但会覆盖旧文件,不追加。
o [,文件] - 类似于[,文件]但覆盖旧文件,并不追加。
t [,n] - 启用功能控制流程跟踪。最大嵌套深度由n指定,默认为200。
X - 此选项激活分析。
跟踪内存分配和重新分配相关的调用。
例子:
d: t: x:啊,/ tmp / mysqlnd.trace
笔记此特性仅在PHP的调试版本中可用。如果使用PHP的调试构建,并且PHP是使用Microsoft Visual C version 9及以上版本构建的,则可以在Microsoft Windows上工作。
-
mysqlnd.log_mask
int -
定义将记录哪些查询。默认值0,用于禁用日志记录。使用整数定义,而不是使用PHP常量。例如,值48(16 + 32)将记录使用'没有好的索引' (SERVER_QUERY_NO_GOOD_INDEX_USED = 16)或根本没有索引(SERVER_QUERY_NO_INDEX_USED = 32)的慢速查询。值为2043(1 + 2 + 8 +…+ 1024)将记录所有慢速查询类型。
类型如下:SERVER_STATUS_IN_TRANS = 1, SERVER_STATUS_AUTOCOMMIT = 2, SERVER_MORE_RESULTS_EXISTS = 8, SERVER_QUERY_NO_GOOD_INDEX_USED = 16, SERVER_QUERY_NO_INDEX_USED = 32, SERVER_STATUS_CURSOR_EXISTS = 64, SERVER_STATUS_LAST_ROW_SENT = 128, SERVER_STATUS_DB_DROPPED = 256, SERVER_STATUS_NO_BACKSLASH_ESCAPES = 512, SERVER_QUERY_WAS_SLOW = 1024。
-
mysqlnd.mempool_default_size
int -
mysqlnd内存池的默认大小,由结果集使用。
-
mysqlnd.net_read_timeout
int -
mysqlnd
和MySQL客户端库,libmysqlclient
使用不同的网络api。mysqlnd
使用PHP流,而libmysqlclient
在操作级网络调用周围使用自己的包装器。默认情况下,PHP将流的读超时设置为60秒。这是通过php . ini
那default_socket_timeout.
.此默认值适用于没有设置其他超时值的所有流。mysqlnd
没有设置任何其他值,因此长时间运行的查询的连接可以断开后default_socket_timeout.
秒导致错误消息“2006年MySQL服务器已经消失“.MySQL客户端库设置默认超时24 * 3600秒(1天),并等待其他超时发生,如TCP/IP超时。mysqlnd
现在使用相同的超长超时。该值可以通过newphp . ini
设置:mysqlnd.net_read_timeout
.mysqlnd.net_read_timeout
可由任何扩展名(ext / mysql.
那ext / mysqli.
那pdo_mysql.
)使用mysqlnd
.mysqlnd
告诉PHP流使用mysqlnd.net_read_timeout
.请注意两者之间可能有细微的差别MYSQL_OPT_READ_TIMEOUT
例如,来自MySQL客户端库和PHP流MYSQL_OPT_READ_TIMEOUT
只适用于TCP/IP连接,MySQL 5.1.2之前仅适用于Windows。PHP流可能没有这个限制。如果有疑问,请检查流文档。10bet官方网站 -
mysqlnd.net_cmd_buffer_size
int -
mysqlnd
分配内部命令/网络缓冲区mysqlnd.net_cmd_buffer_size
(在php . ini
)字节为每个连接。如果MySQL Client Server协议命令,例如:com_query.
(“正常的“查询),不适合缓冲区,mysqlnd
将缓冲区扩大到发送命令所需的大小。每当缓冲区为一个连接进行扩展时,command_buffer_too_small
将被一个递增。如果
mysqlnd
必须将缓冲区扩大到超过其初始大小mysqlnd.net_cmd_buffer_size
字节,您应该考虑增加默认大小以避免重新分配。默认缓冲区大小为4096字节,这是可能的最小值。
该值也可以使用
mysqli_options(链接,mysqli_opt_net_cmd_buffer_size,size)
. -
mysqlnd.net_read_buffer_size.
int -
读取MySQL命令包体时的最大读块大小(以字节为单位)。MySQL客户端服务器协议将它的所有命令封装在包中。数据包由一个小的报头和一个带有实际有效载荷的主体组成。主体的大小被编码在标题中。
mysqlnd
在块中读身体min(header.size,mysqlnd.net_read_buffer_size)
字节。如果报文体大于mysqlnd.net_read_buffer_size.
字节,mysqlnd
已经打电话给读()
很多次了。该值也可以使用
mysqli_options(链接、MYSQLI_OPT_NET_READ_BUFFER_SIZE大小)
. -
mysqlnd.sha256_server_public_key
字符串 -
SHA-256认证插件。文件与MySQL服务器的公共RSA密钥。
客户端可以省略设置公共RSA密钥,通过这个PHP配置设置指定密钥,或者在运行时使用
mysqli_options.
.如果客户端没有给出公开的RSA密钥文件,那么密钥将作为标准SHA-256认证插件认证过程的一部分进行交换。 -
mysqlnd.trace_alloc
字符串 -
mysqlnd.fetch_data_copy
int -
强制将复制结果从内部结果集缓冲区设置为PHP变量,而不是使用默认引用和复制写入逻辑。请看看内存管理实施说明为进一步的细节。
复制结果集,而不是具有PHP变量引用,允许释放早期PHP变量占用的内存。根据用户API代码,实际数据库QURIES和它们的结果尺寸设置这可能会降低MySQLND的内存占用空间。
使用PDO_MySQL时不要设置。PDO_MySQL还没有更新以支持新的获取模式。