mysql中哈希是什么意思,Mysql中的哈希

函数:

static uint hash_mask(uint hashnr,uint buffmax,uint maxlength);

功能

用于查找hash中的索引

参数

uint hashnr,有哈希key算出的哈希值

uint buffmax,哈希表的总长度

uint maxlength,哈希表现有元素的个数

返回值:索引

函数:

static void movelink(HASH_LINK *array,uint pos,uint next_link,uint newlink);

功能:

从next开始,在array中寻找下一个为pos的节点,并用newlink替换pos

参数:

HASH_LINK *array:目标数组

uint pos:目标位置

uint next_link:起始位置

uint newlink:替换后的位置

函数:

static int hashcmp(HASH *hash,HASH_LINK *pos,const byte *key,uint length);

功能:

用pos的节点与key比较

参数:

HASH_LINK *pos:待比较的节点

const byte *key:待比较的key

uint length:长度

函数:

static uint calc_hash(HASH *hash,const byte *key,uint length);

功能:

计算哈希值

参数:

返回值:哈希值

函数:

my_bool

_hash_init(HASH *hash,CHARSET_INFO *charset,

uint size,uint key_offset,uint key_length,

hash_get_key get_key,

void (*free_element)(void*),uint flags CALLER_INFO_PROTO);

功能:

初始化一个哈希表

参数:

CHARSET_INFO *charset:字符编码集

uint size  : 哈希表中元素个数

uint key_offset :如果get_key == NULL;那么可以将key存储在recoder中,此时通过record+hash->key_offset定位key值

uint key_length :键长度

hash_get_key get_key:获得key的函数

void (*free_element)(void*):释放哈希元素的函数

uint flags CALLER_INFO_PROTO:标志位

返回值:OK/NG

函数:

static inline void hash_free_elements(HASH *hash)

功能:

释放哈希元素

参数:

返回值

函数:

void hash_free(HASH *hash)

功能:

释放整个哈希表

参数:

返回值:

函数:

void my_hash_reset(HASH *hash)

功能

重置哈希表

参数:

返回值:

函数:

static inline char*

hash_key(HASH *hash,const byte *record,uint *length,my_bool first)

功能:

查找recoder的key值

参数:

byte *record:记录的内容

uint *length:key的长度

my_bool first:是否是first

返回值:key

函数:

static uint hash_rec_mask(HASH *hash,HASH_LINK *pos,uint buffmax,

uint maxlength)

功能:通过一个哈希元素元素中的记录计算索引

参数

HASH_LINK *pos:哈希表中的一个记录

uint buffmax: 哈希表的长度

uint maxlength:哈希表中记录数

返回值:索引

函数:

unsigned int rec_hashnr(HASH *hash,const byte *record)

功能:

功过记录数据计算哈希值

参数:

const byte *record:记录数据

返回值:哈希值

函数:

gptr hash_search(HASH *hash,const byte *key,uint length)

功能:

通过key值寻找元素位置的记录数据

参数:

const byte *key:

uint length:

返回值:

OK:找到的位置的记录

NO:0

函数:

gptr hash_next(HASH *hash,const byte *key,uint length)

功能:

通过key寻找下一个哈希元素的记录数据

const byte *key:

uint length:

返回值:

OK:找到记录

NO:0

函数:

my_bool my_hash_insert(HASH *info,const byte *record)

功能:

将一个记录插入哈希表

参数:

const byte *record:

返回值:

TRUE/FALSE

函数:

my_bool hash_delete(HASH *hash,byte *record)

功能:

删除哈希记录

参数:

byte *record:

返回值:

TRUE/FALSE

函数:

my_bool hash_update(HASH *hash,byte *record,byte *old_key,uint old_key_length)

功能:

当一条记录变更时,更新key

参数:

byte *record:

byte *old_key

uint old_key_length

返回值:

TRUE/FALSE

函数:

byte *hash_element(HASH *hash,uint idx)

功能:

根据索引查记录

参数:

返回值:

记录

函数:

void hash_replace(HASH *hash, uint idx, byte *new_row)

功能:

用新纪录换旧记录

参数:

返回值:

函数:my_bool hash_check(HASH *hash)功能:检查哈希表正确性,检查方式:①索引大于总记录数目②计算索引与实际不一致③找到的记录数目与记录数目不一致参数:返回值:error

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值