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

网站后台上传缩略图网站开发开发公司排名

网站后台上传缩略图,网站开发开发公司排名,移动网站打不开,装修设计公司哪个好系列文章 基础篇——MySQL 的基础架构 基础篇——redo log 和 binlog 基础篇——事务隔离 目录 系列文章深入浅出索引#xff08;上#xff09;4.1 索引的常见模型4.2 InnoDB 的索引模型4.3 索引维护4.4 思考#xff1a;为什么要重建索引以及如何做#xff1f; 深入浅出索…系列文章 基础篇——MySQL 的基础架构 基础篇——redo log 和 binlog 基础篇——事务隔离 目录 系列文章深入浅出索引上4.1 索引的常见模型4.2 InnoDB 的索引模型4.3 索引维护4.4 思考为什么要重建索引以及如何做 深入浅出索引上 索引的出现其实就是为了提高数据查询的效率就像书的目录一样。我们从小就用的汉语字典里面的声母查询方式就是聚簇索引 偏旁部首就是二级索引偏旁部首笔画就是联合索引。同样对于数据库的表而言索引其实就是它的“目录”。 4.1 索引的常见模型 哈希表它是一种以键 - 值key-value存储数据的结构。把值放在数组里用一个哈希函数把 key 换算成一个确定的位置然后把 value 放在数组的这个位置。如果多个 key 值经过哈希函数的换算会出现了同一个值处理这种情况的一种方法是拉出一个链表。 哈希表这种结构适用于只有等值查询的场景。因为在哈希表中数据是根据它们的哈希值散列存储的这意味着相邻的键值在物理上可能相隔很远。对于区间查询这种无序性导致无法直接定位到查询区间的起始点和结束点等值查询就是用等号来匹配查询结果分为单条件查询、多条件查询与等值查询对应的是模糊查询、范围查询。 有序数组在等值查询和范围查询场景中的性能就都非常优秀。使用二分法能够快速得到值时间复杂度是O(log(N))。 缺点是更新数据的成本高所以有序数组索引只适用于静态存储引擎比如要保存的是一些不会再修改的历史数据。 搜索树树可以有二叉也可以有多叉。搜索树的特点就是父节点的左子树所有节点的值小于父节点的值右子树所有节点的值大于父节点的值。这种结构使得查找操作的时间复杂度可以保持在O(log(N))。 大多数数据库存储不使用二叉树而是多叉搜索树比如B树。因为索引不止存在内存中还要写到磁盘上。二叉树比 n 叉树的高度更高这就意味着需要更多的磁盘 I/O时间更长。 4.2 InnoDB 的索引模型 InnoDB 使用了 B 树索引模型所以数据都是存储在 B 树中的。每一个索引在 InnoDB 里面对应一棵 B 树。 根据叶子节点的内容索引类型分为主键索引和非主键索引 主键索引的叶子节点存的是整行数据。在 InnoDB 里主键索引也被称为聚簇索引clustered index非主键索引的叶子节点内容是主键的值。在 InnoDB 里非主键索引也被称为二级索引secondary index。 在查询方面假设我们有一个主键列为 ID 的表表中有字段 k并且在 k 上有索引。 如果语句是 select * from T where ID500即主键查询方式则只需要搜索 ID 这棵 B 树如果语句是 select * from T where k5即普通索引查询方式则需要先搜索 k 索引树得到 ID 的值为 500再到 ID 索引树搜索一次。这个过程称为回表。 所以使用非主键索引查询可能会触发回表因为非主键索引的B树中只存储着数据的主键索引上面例子里的ID我们需要用ID在到主键索引的B树中查询一遍找到完整的数据。 4.3 索引维护 B 树为了维护索引有序性在插入新值的时候需要做必要的维护。 因此推荐使用自增主键NOT NULL PRIMARY KEY AUTO_INCREMENT 从性能角度自增主键的插入数据模式正符合了递增插入的场景。这种情况下每次插入一条新记录都是追加操作都不涉及到挪动其他记录也不会触发叶子节点的分裂。而有业务逻辑的字段做主键则往往不容易保证有序插入这样写数据成本相对较高。 从存储空间角度主键长度越小普通索引的叶子节点就越小普通索引占用的空间也就越小。 当然也有些场景适合用业务字段直接做主键 只有一个索引该索引必须是唯一索引。 这就是典型的KV 场景这种场景下的数据被存储为键和值之间的映射适用于只需要通过一个唯一键来访问特定值的场合。 因为没有其他索引所以不用考虑非聚簇索引二级索引空间占用大小问题并且也不用考虑回表的问题 4.4 思考为什么要重建索引以及如何做 当我我们删除了表中的一些行时这些行只是被标记为“已删除”而不是真的从索引中物理删除了因而空间也没有真的被释放回收。 InnoDB的Purge线程会异步的来清理这些没用的索引键和行但是依然没有把这些释放出来的空间还给操作系统重新使用因而会导致页面中存在很多空洞。 重建索引是将原始索引在磁盘和内存中都删除再根据原始数据建立索引可以将原始索引中由于页分裂等原因造成的数据页的利用率低的问题解决 提高页利用率。 如果要重建一个普通索引k 可以用下面两个 SQL 语句 alter table T drop index k; alter table T add index(k);但是如果是重建一个主键就不能通过上面两个命令因为。不论是删除主键还是创建主键都会将整个表重建。所以连着执行这两个语句的话第一个语句就白做了。所以这两个语句可以用这个语句代替 alter table T engineInnoDB下面是本篇的思维导图以供参考
http://www.hkea.cn/news/14350695/

相关文章:

  • 廊坊app网站制作网络营销的常用工具
  • 做ppt模版的网站无锡专业网站建设
  • 企业做网站哪个最好网页升级访问每天正常更新
  • 网站建设简介是什么意思电脑安装免费的wordpress
  • 网站怎样排版常用网站图标
  • 厦门市规划建设局网站品牌建设内容措施
  • 仙桃做网站的公司有哪些wordpress添加社交媒体
  • 家乡网站建设策划案制作wordpress页面模板下载地址
  • 兰州百度公司网站建设joomla 和 wordpress
  • 南宁市兴宁建设局网站农产品网站建设投标书
  • 合肥seo建站做本地团购网站怎么样
  • 长图制作网站网站系统升级
  • 建网站用哪个好网页制作下载安装包
  • 2018江苏省海门市建设局网站三合一网站建设什么意思
  • 易旅游网站建设学电商出来一般干什么工作
  • 做网页网站怎么样网页设计模板素材网站大全
  • 嘉兴港区建设局网站zencart 网站建设
  • 温州市建设小学网站学做网站有前途吗
  • 天津谁做网站wordpress手机端跳转
  • 什么是网站的用户体验平台运营是做什么的
  • 企业网站建设网页wordpress固定衔接出错
  • 肇庆高端模板建站南昌网站建设哪家就好
  • 深圳网站制作公司报价单南和住房和城乡建设局网站
  • 论述网站开发建设的一般流程中企动力z邮箱登录手机
  • 网站建设培训方案创意设计app
  • 欧式建筑网站茂名小学网站建设
  • 购物网站模板 phpwordpress科技公司主题
  • 盐城网站开发公司做网站编辑应该注意什么
  • 网站色调代号广西南宁云尚网络科技有限公司
  • 做地方旅游网站2023年中国500强企业