如何用电脑做网站服务器网站后台管理系统地址
如何用电脑做网站服务器,网站后台管理系统地址,工程设计公司,代理网页浏览器1 索引类型
返回面试宝典 主键索引#xff08;PRIMARY#xff09;:数据列不允许重复#xff0c;不允许为NULL#xff0c;一个表只能有一个主键。 唯一索引#xff08;UNIQUE#xff09;:数据列不允许重复#xff0c;允许为NULL#xff0c;一个表允许多个列创建唯一索引…1 索引类型
返回面试宝典 主键索引PRIMARY:数据列不允许重复不允许为NULL一个表只能有一个主键。 唯一索引UNIQUE:数据列不允许重复允许为NULL一个表允许多个列创建唯一索引。 普通索引INDEX基本的索引类型没有唯一限制允许为NULL值。 全文索引FULLTEXT索引在MySQL5.6之后支持InnoDB而之前的版本只支持MyISAM表。
下文将介绍一些常见的数据结构为了帮助理解示例和动画效果可以参考数据结构可视化网站
2 哈希
哈希索引的实现比较简单它是基于哈希表来实现的对于要索引的列存储引擎会计算出一一对应的哈希码然后把哈希码存放在哈希表中作为keyvalue值是指向该行数据的指针。 优势 只需对比哈希值因此速度非常快性能优势明显 限制
不支持任何范围查询比如where price 150因为是基于哈希计算支持等值比较哈希表是无序存储的因此索引数据无法用于排序Hash索引不能用于部分索引键查询即不能用于部分索引键的组合索引Hash索引在任何时候都不能避免Hash表扫描Hash索引在遇到大量Hash值相等的情况后性能并不一定就会比BTree索引高对于哈希值大量相同的情况下大量记录的指针信息都会存在同一个哈希值指向的链表中这样定位一条记录就会全链表扫描比对键值从而造成整体性能低下。
主流存储引擎不支持该类型比如MyISAM和InnoDB。哈希索引只有MemoryNDB两种引擎支持。哈希索引是一种非常快的等值查找方法注意必须是等值哈希索引对非等值查找方法无能为力它查找的时间复杂度为常量InnoDB采用自适应哈希索引技术它会监控表上索引的使用情况如果认为建立哈希索引可以提高查询效率则自动在内存中的“自适应哈希索引缓冲区”建立哈希索引。 InnoDB引擎有一个特殊功能叫做自适应哈希索引当InnoDB注意到某些索引值被使用的非常频繁时它会在内存中基于BTree索引之上再创建一个哈希索引这样就让BTree索引也具有哈希索引的一些优点了比如快速的哈希查找这是一个全自动的内部的行为不能人工干预用户无法控制或者配置不过如果有必要可以选择关闭这个功能innodb_adaptive_hash_indexOFF默认为ON。 3 BTree
MyISAM和InnoDB都支持这种索引因此说它是应用最广泛最常用的一种索引方式但是不同的存储引擎在具体实现时会稍有不同比如MyISAM会使用前缀的方式对索引进行压缩InnoDB则不会。 BTree只是底层的算法实现唯一索引、主键索引、普通索引都是基于BTree索引算法的只不过又有各自的特点。 B树是一种自平衡的树能够保持数据有序。这种数据结构能够让查找数据、顺序访问、插入数据及删除的动作都在对数时间内完成。 BTree的特点
叶节点具有相同的深度叶节点的指针为空所有索引元素不重复节点中的数据索引从左到右递增排列每个节点都有data
BTree的缺点
如果data过大一个节点存放的数据少这样会导致树加深这样也增加了IO次数范围查询支持的不好 针对上述缺点就需要寻找新的数据结构于是BTree树就出现了。
4 BTree
B树是B树的一种变体B树上的叶子节点存储索引和响应记录或记录地址叶子节点以上各层作为索引使用。B树的查找与B树不同当索引部分某个节点的关键字与所查的关键字相等时并不停止查找应继续沿着这个关键字右边的指针向下一直查到该关键字所在的叶子节点为止。 特点
非叶子节点不存储data只存储索引可以放更多的索引叶子节点包含所有索引字段叶子节点用指针连接提高区间访问的性能。
优点
较B树横向存储的索引更多这样可大量减少磁盘I/O的次数能很好的支持范围查询因为叶子节点之间有双向指针连接。
4 空间索引
空间索引可用于地理数据存储它需要GIS相关函数的支持由于MySQL的GIS支持并不完善所以该索引方式在MySQL中很少有人使用。
5 存储引擎支持索引类型
InnoDB 支持事务支持行级别锁定支持 B-tree、Full-text 等索引不支持 Hash 索引MyISAM 不支持事务支持表级别锁定支持 B-tree、Full-text 等索引不支持 Hash 索引Memory 不支持事务支持表级别锁定支持 B-tree、Hash 等索引不支持 Full-text 索引NDB 支持事务支持行级别锁定支持 Hash 索引不支持 B-tree、Full-text 等索引Archive 不支持事务支持表级别锁定不支持 B-tree、Hash、Full-text 等索引
最后贴一些官方文档给出的相关表格
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91845.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!