MySQL 客户工具和API

MySQL 客户工具和API

MYSQL_FIELD 结构包括列在下面的成员:

其他客户 API 除了 Java 所有 ) 都使用 mysqlclient 库与 MySQL 服务器通信。这意味着,客户有一个最大通讯缓冲区大小。初始分配的缓冲区大小 ( 16K 字节 ) 自动地增加到最大尺寸 ( 缺省的最大值是 24M 因为缓冲区大小只是按保证需求而被增加。例如,能利用很多被其他客户顺序使用的同一环境变量,因为他从库中引用。对这些变量的一张表,见 12.1 不同的 MySQL 顺序的概述。

简单地增加缺省的最大限制并不造成更多被消耗。该尺寸检查主要是一个对错误的查询和通讯包的检查。

如果你包括大到 16M 数据的 BLOB 值,通讯缓冲区必需足够大以便一个单独的 SQL 语句 ( 对客户 - 服务器传输 ) 和一行返回的数据 ( 对服务器 - 客户传输 ) 每个线程的通讯缓冲区主动态扩大到最大限制来处置任何查询或行。例如。必需有一个至少 16M 通讯缓冲区限制 ( 服务器和客户两端 ) 客户的缺省最大值是 24M 但是服务器端的缺省最大值是 1M 可以在服务器启动时通过改变 max_allowed_packet 参数的值来改变它见 10.2.3 调节服务器参数。

与一个连接相关的缓冲区的大小没被减少,MySQL 服务器在每个查询后缩小每个通讯缓冲区到 net_buffer_length 个字节。对客户。直到连接被关闭,此时客户内存被回收。

应该用 --with-thread-safe-cli 编译 MySQL C API 这将使 C API 线程对每个连接更安全。可以让 2 个线程共享相同的连接,如果你用线程的编程。只要如果你做下列事情:

两个线程不能同时在同一个连接上发送查询到 MySQL 特别是必需保证在一个 mysql_queri 和 mysql_store_result 之间没有其他线程正在使用同一个连接。
许多线程能存取用 mysql_store_result 检索进去的不同结果集合。
如果你使用 mysql_use_result 必需保证没有其他线程在同一个连接上正在询问任何东西,直到结果集合被关闭。

20.2 C API 数据类型

MYSQL
这个结构表示对一个数据库连接的句柄,被用于几乎所有的 MySQL 函数。
MYSQL_RES
这个结构代表返回行的一个查询的 SELECT, SHOW, DESCRIBE, EXPLA IN 结果。从查询返回的信息在本章下文称为结果集合。
MYSQL_ROW
这是一个行数据的类型平安 ( type-saf 表示。当前它实现为一个计数字节的字符串数组。如果字段值可能包括二进制数据,不能将这些视为空终止串,因为这样的值可以在内部包括空字节 ) 行通过调用 mysql_fetch_row 获得。
MYSQL_FIELD
这个结构包括字段信息,例如字段名、类型和大小。其成员在下面更详细地描述。可以通过重复调用 mysql_fetch_field 对每一列获得 MYSQL_FIELD 结构。字段值不是这个结构的局部;被包含在一个 MYSQL_ROW 结构中。
MYSQL_FIELD_OFFSET
这是一个相对一个 MySQL 字段表的偏移量的类型平安的表示。由 mysql_field_seek 使用。偏移量是一行以内的字段编号,从 0 开始。
my_ulonglong
该类型用于行编号和 mysql_affected_row mysql_num_row 和 mysql_insert_id 这种类型提供 0 1.84e19 一个范围。一些系统上,试图打印类型 my_ulonglong 值将不工作。为了打印出这样的值,将它变换到 unsign long 并且使用一个 %lu 打印格式。例如: printf Number of rows: %lu/n", unsign long mysql_num_row result ;
char * name
字段名,一个空结尾的字符串。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值