Mysql中的哈希
来源:互联网 发布:网络经纪人 编辑:程序博客网 时间:2024/05/06 10:23
函数:
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
- Mysql中的哈希
- MySQL数据库中的哈希加密
- MySQL中的mysql.user表
- mysql详解--mysql中的锁
- mysql 中的mysql数据库不见了
- mysql教程-mysql中的锁
- mysql中的mysql.user表
- mysql 中的myisam 中的btree
- mysql中的临时表
- mysql中的连接
- MYSQL中的数据库错误代码
- mysql中的替换语句
- mysql中的新建帐户
- MySQL中的各种操作
- mysql中的常用命令
- MYSQL中的数据类型
- Flex中的MySQL管理
- Flex中的MySQL管理
- 解决JNI需要手动存放本地库的问题
- Ajax Control Toolkit:AutoComplete控件示例
- KMP算法
- “/”应用程序中的服务器错误。
- C_float 在内存中的存储_转
- Mysql中的哈希
- 【暗调】壁纸—001
- 社会进化之解析
- 21个演示展示强大的jQuery特效
- JAVA和SAP我该如何抉择
- asp.net 父窗体获取子窗体的返回值,对父窗体局部更新(模式化窗口)
- asp.net 父窗体获取子窗体的返回值,对父窗体局部更新(模式化窗口)
- 定制TextBox文本框
- c语言中的符号解析