Mysql Join_buffer_size的使用原理

本文详细介绍了MySQL中join_buffer_size参数的作用及其实现原理。解释了如何通过JOIN_CACHE类中的方法来分配和释放join操作所需的内存,以及这些操作是如何与my_malloc和my_free函数配合以提高性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 


1.mysql中的join_buffer_size是定义在

class JOIN_CACHE(sql_join_buffer.h) 中的 uchar *buff;

void JOIN_CACHE::set_constants() 设置buff的大小
bool JOIN_CACHE::alloc_buffer() 申请buff大小的内存
void JOIN_CACHE::free() join操作完成以后,立马释放内存
void JOIN::destroy() 销毁join类

mysql中每次join操作都会调用my_malloc、my_free函数申请/释放joib_buffer_size的大小的内存。
join_buffer_size是按照每次操作join表的操作的次数申请和释放joib_buffer_size.


(gdb) JOIN_CACHE::set_constants
Undefined command: "JOIN_CACHE". Try "help".
(gdb) br JOIN_CACHE::set_constants
Breakpoint 1 at 0x9a8ac9: file /home/os1/Open/mysql5616/sql/sql_join_buffer.cc, line 432.
(gdb) br JOIN_CACHE::alloc_buffer
Breakpoint 2 at 0x9a8cb0: file /home/os1/Open/mysql5616/sql/sql_join_buffer.cc, line 468.
(gdb) r
(gdb) br JOIN_CACHE::free 
(gdb) br JOIN::destroy

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值