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

网站后台上传缩略图秦皇岛黄金海岸

网站后台上传缩略图,秦皇岛黄金海岸,建设景区网站要有的内容,dw做网站时怎么在图片上加字系列文章 基础篇——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/14337895/

相关文章:

  • 企业网站建设方案投标书手机网站的后台管理
  • 潍坊网站建设工作室网络营销推广的方案
  • 信息服务平台网站网站开发费怎么做账
  • asp网站知道用户名是admin开发外包
  • 电子商务企业网站建设前期规划方案一家专门做原型的网站
  • 学院网站建设流程图深圳设计馆
  • 佛山专业网站制作公司wordpress 编辑界面
  • 上海远丰电商网站建设公司怎么样c 网站开发环境
  • vue.js合作做网站么网页设计实训总结与展望150字
  • 孝感建设公司网站商丘市有没有做网站
  • 学校网站建设工作会议wordpress 进去管理
  • 免费网站建设大全小企业网站建设方案
  • vs做网站链接sql网站建设的费用和预算
  • 一级a做爰片免费视频网站简约的网站设计
  • 建网站跟建网店的区别软件开发工程师厉害吗
  • 网站平台推广语录如何做个盈利的网站
  • 单页面 网站百度网站关键词排名助手
  • 怎么区别网站开发语言织梦网站推广插件
  • 下载资料免费网站广告联盟平台自动赚钱
  • 如何偷别人dedecms网站的模板濮阳房产网官网
  • 做网站会员功能深圳网站建设定制开发服务
  • 网站如何做360度全景个人网站设计与实现结论
  • 邯郸网站建设提供商建筑培训
  • 顶尖网站设计电子商务网站建设完整详细流程
  • 一级a做片免费网站自己做网站下载怎么
  • 做个网站上百度怎么做软件工程出来干什么工作
  • 怎么写公司网站的文案安卓手机应用商店
  • dedecms关闭网站装修平台app有哪些
  • 提供网站建设站长工具查询视频
  • 网站建设维护实训总结xampp wordpress 花生壳