当前位置: 首页 > news >正文

推荐个好看的网站西安做网站公司玖佰网络

推荐个好看的网站,西安做网站公司玖佰网络,崆峒区建设局网站,中国那个公司的网站做的最好看索引是为了提高数据查询的效率#xff0c;类似于书的目录。 索引的常见模型有三种#xff1a; 1.哈希表#xff1a; 只适用于等值查询#xff0c;不适用于范围查询 为什么呢#xff1f; 哈希表是#xff08;key#xff0c;value#xff09;的格式存储#xff0c;…索引是为了提高数据查询的效率类似于书的目录。 索引的常见模型有三种 1.哈希表 只适用于等值查询不适用于范围查询 为什么呢 哈希表是keyvalue的格式存储存储的数据不一定是按照顺序存的 比如user有idnameaddress三个属性用id%5作为哈希函数 现在存入32147几个id如果我们要找id2的user2%52很容易发现他在哈希表的第二个位置但是id2的不一定就存在第二个位置以后比如id66%51 那么如果位置冲突怎么办 上面已经存入了id2的user现在要存入id7的user7%52也要存在第二个位置 使用拉链法解决 2.有序数组 更新慢查询快查询的时间复杂度是logn 但是如果更新必须要移动更新位置之后的元素 所以有序数组适用于静态的数据库或者更新很少的数据库。 比如2015年的人口信息数据不会再改变 3.二叉搜索树 更新查询的时间复杂度都是logn 一般不推荐使用二叉树 比如一棵 100 万节点的平衡二叉树树高 20。一次查询可能需要访问 20 个数据块。在机械硬盘时代从磁盘随机读一个数据块需要 10 ms 左右的寻址时间。也就是说对于一个 100 万行的表如果使用二叉树来存储单独访问一个行可能需要 20 个 10 ms 的时间这个查询可真够慢的。为了让一个查询尽量少地读磁盘就必须让查询过程访问尽量少的数据块。那么我们就不应该使用二叉树而是要使用“N 叉”树。这里“N 叉”树中的“N”取决于数据块的大小。以 InnoDB 的一个整数字段索引为例这个 N 差不多是 1200。这棵树高是 4 的时候就可以存 1200 的 3 次方个值这已经 17 亿了。考虑到树根的数据块总是在内存中的一个 10 亿行的表上一个整数字段的索引查找一个值最多只需要访问 3 次磁盘。其实树的第二层也有很大概率在内存中那么访问磁盘的平均次数就更少了。 N叉树中右边的兄弟比左边的兄弟值大 InnoDB的索引模型 每一个索引在 InnoDB 里面对应一棵 B 树。 索引类型分为主键索引和非主键索引。主键索引的叶子节点存的是整行数据。在 InnoDB 里主键索引也被称为聚簇索clustered index。非主键索引的叶子节点内容是主键的值。在 InnoDB 里非主键索引也被称为二级索引secondary index。 主键索引和普通索引有什么区别 主键索引select * from user where id 10,只用搜索id这颗二叉树 普通索引select * from user where name张三先搜索name这颗二叉树中名字是张三的再通过name这棵树获取到张三的id去搜id这颗二叉树再获取到全部信息。 去搜id这颗二叉树的操作叫做回写 索引维护b树的合并拆裂 索引什么时候使用自增主键什么时候用自己的属性 自增主键的插入数据模式正符合了我们前面提到的递增插入的场景。每次插入一条新记录都是追加操作都不涉及到挪动其他记录也不会触发叶子节点的分裂。而有业务逻辑的字段做主键则往往不容易保证有序插入这样写数据成本相对较高。 主键长度越小普通索引的叶子节点就越小普通索引占用的空间也就越小。所以从性能和存储空间方面考量自增主键往往是更合理的选择。 有没有什么场景适合用业务字段直接做主键的呢还是有的。比如有些业务的场景需求是这样的只有一个索引该索引必须是唯一索引。这就是典型的 KV 场景。由于没有其他索引所以也就不用考虑其他索引的叶子节点大小的问题。这时候我们就要优先考虑上一段提到的“尽量使用主键查询”原则直接将这个索引设置为主键可以避免每次查询需要搜索两棵树。 回到主键索引树搜索的过程我们称为回表。 那么有没有什么方法可以避免回表呢  1.覆盖索引 select id from user where name张三 这种的我们可以发现只需要查找user那么通过找name这颗二叉树获得id就行不用回写。 类似上面的过程就叫做覆盖索引 2.最左前缀联合索引的最左 N 个字段也可以是字符串索引的最左 M 个字符 3.联合索引根据创建联合索引的顺序以最左原则进行where检索比如agename以age1 或 age 1 and name‘张三’可以使用索引单以name‘张三’ 不会使用索引考虑到存储空间的问题还请根据业务需求将查找频繁的数据进行靠左创建索引。 4.索引下推like hello%’and age 10 检索MySQL5.6版本之前会对匹配的数据进行回表查询。5.6版本后会先过滤掉age10的数据再进行回表查询减少回表率提升检索速度
http://www.pierceye.com/news/315658/

相关文章:

  • 绍兴网站建设网站站长 网站对比
  • 廊坊哪里做网站好费用
  • 织梦建站教程wordpress支持mysqli
  • 松江醉白池网站建设投资公司设立条件
  • 杭州网络seo优化知识
  • 对网站的建议和优化网银汇款企业做网站用途写什么
  • 商务网站的功能和建设制作外贸网站模板
  • 如何防止网站挂黑链怎么购买国外的域名
  • 企业官方网站地址怎么填微信页面设计网站
  • 国外购物网站有哪些郑州网站搜索排名
  • seo网站优化推广费用装饰行业网站建设
  • idea的网站开发登录页面做网页的
  • 寻找大连网站建设wordpress换模板 seo
  • 二手房公司网站源码网站的维护步骤
  • 衡水企业网站建设公司wordpress 快速回复
  • 网站维护需要关闭网站么找哪些公司做网站
  • 阿里巴巴做轮播网站如何建设学校的微网站首页
  • 国内设计好的网站案例网店设计风格怎么写
  • 网站建设长沙创建网页需要多少钱
  • 南通电商网站建设网站背景怎么设置
  • 无锡网站托管aspnet通讯录网站开发
  • 卫计网站建设工作总结铜陵建设行业培训学校网站
  • 手机网站竞价网页界面设计遵循的原则
  • 徐州seo推广公司广州营销型网站优化
  • 小说网站首页模板安徽华力建设集团网站
  • 减肥网站如何做公司企业模板
  • 郑州网站建设搜q.479185700怎么在百度上推广自己的公司信息
  • 深圳住建设局官方网站大连在哪个省市
  • 吉林企业建站系统费用wordpress幻灯片加载很慢
  • com域名和网站小型企业网站排名前十