MySQL源码 数据结构array
时间:2022-03-10 17:06
MySQL源码中自己定义了许多数据结构,放在mysys的目录下,源码中通常都使用这些数据结构来组织存放数据,也更容易实现跨平台。
下面先来看下MySQL定义的动态数组: 【源代码include/array.h mysys/array.c】 特点: 1. 动态数组中的元素具有固定的内存空间大小 size_of_element 2. 插入一个元素时,提供元素的指针,写入时会指针所指向的位置开始后的size_of_element字节的内存memcpy到数组中 3. 检索时,提供单个索引位置的直接定位,或者根据elements来for轮询所有的元素 下面看一下针对动态数组的函数: 1. init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size,
void *init_buffer, ulong
init_alloc,
ulong alloc_increment)
删除数组中位置是indx的元素,并把indx后面的元素向前移动。 8. get_index_dynamic(DYNAMIC_ARRAY *array, uchar* element) 获取element在数组中的位置。
MySQL源码 数据结构array,布布扣,bubuko.com