吉法师的博客

不知道能否追到喜欢的人呀,今年努力下吧~ 2022.1.4

常见正则表达式汇总

数字校验 数字: ^[0-9]*$ n位的数字: ^\d{n}$ 至少n位的数字: ^\d{n,}$ m-n位的数字: ^\d{m,n}$ 零和非零开头的数字: ^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字: ^([1-9][0-9]*)+(\. Read more →

常见排序算法总结

前置知识 排序算法的种类: 基本知识 时间复杂度 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。 最坏时间复杂度和平均时间复杂度 最坏情况下的时间复杂度称最坏时间复杂度。一般不特别说明,讨论的时间复杂度均是最坏情况下的时间复杂度。 Read more →

MySQL的索引和SQL优化

索引 1.索引的分类 (1)从数据结构角度 B+树索引、hash索引、FULLTEXT索引、R-tree树索引 (2) 从物理角度 聚族索引、非聚族索引 (3)从逻辑角度 主键索引 唯一索引 多列索引 单列索引 Read more →

MySQL数据库设计思想

一.数据库设计的目的 主要是为了减少数据冗余,避免数据维护异常,节省空间,高效访问。 二.数据库设计的思想 1.理论 a.范式的概念 第一范式: 数据表中所有字段都是单一属性,不可再分 第二范式: 在第一范式的基础上,数据表中不存在非关键字段对任意候选关键字段的部分函数依赖 注:部分函数依赖是指,存在组合关键字中的某一关键字决定非关键字的情况,所有的单关键字都符合第二范式 Read more →

哈希表与哈希索引

哈希函数 所谓的哈希函数,就是根据这个函数和查找关键字key,可以直接确定查找值所在位置,而不需要一个个比较。 预先知道key所在的位置,直接找到数据,这样可以提升查找的效率。 hash函数就是根据key计算出应该存储地址的位置,而哈希表是基于哈希函数建立的一种查找表。 哈希函数构造举例 假设需要统计中国人口的年龄分布,以10为最小单元。今年是2018年,那么10岁以内的分布在2008-2018,20岁以内的分布在1998-2008……假设2018代表2018-2008直接的数据,那么关键字应该是2018,2008,1998…… 那么可以构造哈希函数H(key)=(2018-key)/10=201-key/10 index key 年龄 人数(假设数据) 0 2018 0-10 200W 1 2008 10-20 250W 2 1998 20-30 253W 3 1988 30-40 300W 哈希索引 哈希索引(hash index)基于哈希表实现,只有精确匹配索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(hash code),哈希码是一个较小的值,并且不同键值的行计算出来的哈希码也不一样。哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。 Read more →