Mysql源码分析--csv存储引擎
时间:2021-07-01 10:21:17
帮助过:46人阅读
Transparent_file
{
File filedes;
uchar *buff;
/* in-memory window to the file or mmaped area */
/* current window sizes */
my_off_t lower_bound;//文件偏移开始位置
my_off_t upper_bound;
//文件偏移结束位置
uint buff_size;
//缓存文件的长度
public:
Transparent_file();
~
Transparent_file();
void init_buff(File filedes_arg);
//从文件中读取数据到内存缓存中
uchar *ptr();
//返回内存缓存指针
my_off_t start();
my_off_t end();
char get_value (my_off_t offset);
my_off_t read_next();//读取下一段
};
1.Transparent_file构造函数,根据buff_size和字符的大小申请了指定长度的空间,只是申请,没有初始化文件中的数据。
2.init_buff函数的作用是从指定文件中加载文件内容到缓存中。
3.read_next从文件中下一个buff_size长度的内容放到缓存中,并重写lower_bound和upper_bound的值。
4.get_value从文件中读取指定位置长度为buff_size的数据,放到缓存中。
未完待续。。。
Mysql源码分析--csv存储引擎
标签:mmap 返回 blog public 目的 字符 span ora 简单