10bet网址
连接器和API手册
下载本手册

7.6.3运行时配置

版权所有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_statsmysqli_get_connection_stats.,并显示在mysqlnd的输出部分phpinfo功能也是如此。

此配置设置启用全部MySQL本地驱动统计除了与内存管理有关的那些。

mysqlnd.collect_memory_statistics保龄球

启用可以通过访问的各种内存统计信息的收集mysqli_get_client_statsmysqli_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_maskint

定义将记录哪些查询。默认值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_sizeint

mysqlnd内存池的默认大小,由结果集使用。

mysqlnd.net_read_timeoutint

mysqlnd和MySQL客户端库,libmysqlclient使用不同的网络api。mysqlnd使用PHP流,而libmysqlclient在操作级网络调用周围使用自己的包装器。默认情况下,PHP将流的读超时设置为60秒。这是通过php . inidefault_socket_timeout..此默认值适用于没有设置其他超时值的所有流。mysqlnd没有设置任何其他值,因此长时间运行的查询的连接可以断开后default_socket_timeout.秒导致错误消息2006年MySQL服务器已经消失.MySQL客户端库设置默认超时24 * 3600秒(1天),并等待其他超时发生,如TCP/IP超时。mysqlnd现在使用相同的超长超时。该值可以通过newphp . ini设置:mysqlnd.net_read_timeoutmysqlnd.net_read_timeout可由任何扩展名(ext / mysql.ext / mysqli.pdo_mysql.)使用mysqlndmysqlnd告诉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_sizeint

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_copyint

强制将复制结果从内部结果集缓冲区设置为PHP变量,而不是使用默认引用和复制写入逻辑。请看看内存管理实施说明为进一步的细节。

复制结果集,而不是具有PHP变量引用,允许释放早期PHP变量占用的内存。根据用户API代码,实际数据库QURIES和它们的结果尺寸设置这可能会降低MySQLND的内存占用空间。

使用PDO_MySQL时不要设置。PDO_MySQL还没有更新以支持新的获取模式。