mysql code

sql_select.cc

bool
make_join_readinfo(JOIN *join, ulonglong options, uint no_jbuf_after)

table->type



sql_executor.cc

pick_table_access_method()

JT_EQ_REF


sql_select.cc

j->type=JT_EQ_REF;

bool create_ref_for_key(JOIN *join, JOIN_TAB *j, Key_use *org_keyuse,
                        table_map used_tables)



BNL 算法,读内表的函数栈:
sql_executor.cc 1050:op->end_send();
sql_parse.cc 447: join_records();
sql_join_buffer.cc 1702: join_matching_records();
sql_join_buffer.cc 1855: read_first_record();
sql_executor.cc 2392: read_record();
records.cc:478: ha_rnd_next();


join buffer前的标记字段通过调用:
sql_join_buffer.cc 273: create_flag_fields()


读取join buffer中的字段值是在:
sql_join_buffer.cc 1897: get_record();

比较是在:
sql_join_buffer.cc 1898: generate_full_entensions();

读取第二张nation表的代码是在:
sql_join_buffer.cc 1827: join_matching_records();
1905: read_record();
之前应该调用了first_read_record读取了第一条记录



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值