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

网站的更新与维护网站开发设计心得及体会

网站的更新与维护,网站开发设计心得及体会,截图京东图片做网站,给个手机网站就这么难吗index存储引擎索引InnoDB中的索引MyISAM索引存储引擎 以前一直认为关系型数据库中的索引不重要#xff0c;知道最近学了MySQL高级篇#xff0c;才发现#xff0c;对MySQL一知半解。都是听人泛泛而谈。 首先MySQL服务器是怎么存数据的#xff0c;怎么取到的#xff0c;内… index存储引擎索引InnoDB中的索引MyISAM索引存储引擎 以前一直认为关系型数据库中的索引不重要知道最近学了MySQL高级篇才发现对MySQL一知半解。都是听人泛泛而谈。 首先MySQL服务器是怎么存数据的怎么取到的内存怎么跟磁盘交付的 可以确定的是MySQL5.7以后默认使用了InnoDB作为存储引擎。 使用存储引擎来拿到硬盘上的数据然后放到内存内存再跟缓冲池交互。 缓冲池是主内存中的一部分空间用来缓存已使用的表和索引数据。缓冲池使得经常被使用的数据能够直接在内存中获得从而提高速度。 我们用程序做的持久化操作都是先把数据放到缓冲池然后经过一定时间数据会进行刷盘操作然后持久化到硬盘上。 那么表的中的数据和索引又是怎么回事呢 在MySQL8.0中表的在硬盘的表示形式是.ibd文件存储。这个文件即存储了索引又保存了数据。 索引 上面所里索引这个玩意到底是什么。 索引是一种数据结构是树是数据。 InnoDB中的索引 InnoDB InnoDB中的索引使用了B树作为数据结构保存。每个表都有聚簇索引如果有主键主键默认是聚簇索引如果没有主键unique声明的列就是聚簇索引每个没pkuk那么MySQL会默认指定一个索引这个索引是隐藏的。聚簇索引保存了主键也保存了数据。以主键作为检索条件。非聚簇索引保存了索引的列还保存了列对应的主键索引值以列的值作为检索条件。查这种索引时会找到这个列然后找到主键。根据主键查聚簇索引再拿到完整数据。这种就称为回表。除此之外还有联合索引即多个列构成的索引。 索引的基本结构怎么演变来的 真是站在巨人的肩膀呀别说我树还没玩明白。 创建下面的表有三个列指明了行格式。 mysql CREATE TABLE index_demo( - c1 INT, - c2 INT, - c3 CHAR(1), - PRIMARY KEY(c1) - ) ROW_FORMAT Compact;假定下图是index_demo表某一行数据的结构。 c1, c2, c3是列里面存放了数据。 record_type 记录头信息的一项属性表示记录的类型 0 表示普通记录、 2 表示最小记录、 3 表示最大记录、 1是非叶子节点。 next_record 记录头信息的一项属性表示下一条地址相对于本条记录的地址偏移量我们用箭头来表明下一条记录是谁。 各个列的值 这里只记录在 index_demo 表中的三个列分别是 c1 、 c2 和 c3 。 其他信息 除了上述3种信息以外的所有信息包括其他隐藏列的值以及记录的 额外信息。 补充 数据存储的最小基本单位是页每一页里面存储了许多行就像上面的结构一样逻辑上多条数据是在一个页中的。 多个页构成了区表示连续的页方便查找。 多个区构成了段表示数据区和页目录区。 还有一个零散区可以放数据。 哥几个都属于表空间的。 这个是一页数据。 1. 包含最小记录最大记录值 2. 普通记录值列。 3. 最小记录指向主键最小的主键从小往大排执行最大记录值。 4. 这个页相当于一个叶子节点然后也保存了数据 5. 多条数据构成了单向链表。既然是B树不止一个叶子节点的也不知3条数据的。这时页分裂了我愿称之为细胞分裂 。 所有的主键是按从小到大排列的橙色的背景。 多页数据来了这个是双向链表由页头里面的信息确认的。每个页不是连续的所以页码是乱的但是逻辑上是双向链表。 这时候我知道了页面也知道了每页的最小主键值抽取页目录。 页目录就是看到的索引。使用二分法可以快速找到数据。 比如我查找主键是10的数据 1. 使用二分法定位10在5-12之间 2. 目录项3中的主键比10大 3. 找到目录2循环列表得到10.最终结构将页目录抽取。 这就是B树。 MyISAM索引 数据和索引是分开存储的底层也是B树叶子节点存储的是磁盘上的地址。 MyISAM引擎都是非聚簇索引。 MyISAM的索引方式都是“非聚簇”的与InnoDB包含1个聚簇索引是不同的。小结两种引擎中索引的区别 ① 在InnoDB存储引擎中我们只需要根据主键值对 聚簇索引 进行一次查找就能找到对应的记录而在 MyISAM 中却需要进行一次 回表 操作意味着MyISAM中建立的索引相当于全部都是 二级索引 。 ② InnoDB的数据文件本身就是索引文件而MyISAM索引文件和数据文件是 分离的 索引文件仅保存数 据记录的地址。 ③ InnoDB的非聚簇索引data域存储相应记录 主键的值 而MyISAM索引记录的是 地址 。换句话说 InnoDB的所有非聚簇索引都引用主键作为data域。 ④ MyISAM的回表操作是十分 快速 的因为是拿着地址偏移量直接到文件中取数据的反观InnoDB是通 过获取主键之后再去聚簇索引里找记录虽然说也不慢但还是比不上直接用地址去访问。 ⑤ InnoDB要求表 必须有主键 MyISAM可以没有 。如果没有显式指定则MySQL系统会自动选择一个 可以非空且唯一标识数据记录的列作为主键。如果不存在这种列则MySQL自动为InnoDB表生成一个隐 含字段作为主键这个字段长度为6个字节类型为长整型。
http://www.yutouwan.com/news/295601/

相关文章:

  • 北京做手机网站的公司哪家好推广竞价托管公司
  • 宁波品牌网站设计特点电商网站的推广方式
  • 合肥做网站的公司网站关键词上首页
  • 天津小型企业网站设计方案可以做锚文本链接的网站
  • 东莞哪些网络公司做网站比较好手机网站适配代码
  • 电子元器件商城网站建设百度问问首页
  • 校园网站建设价格国产做性直播视频网站
  • 农村电商网站建设ppt微信开放平台创建小程序
  • 有几个网站开发多语言网站
  • 莱芜网站优化加徽信xiala5北京12345
  • 九牛科技网站开发微信营销网页设计旅游网站
  • 企业网站怎么做百度免费加盟无需店面
  • 网站 建设设计网站空间ip是一个域名
  • 品牌包包排行榜seo专员岗位要求
  • 怎么做网站站长什么平台可以免费发布信息
  • 重庆微信网站制作网络营销推广方案策划与实施
  • asp影楼网站设计买CAD设计图做的网站
  • 网站常用文件夹服务器证书与网站不符
  • 湖南网站建设seo优化肥东建设网站
  • 网站建设安全制度图片wordpress 主题类型
  • 赣州市铁路建设办公室网站献县建设局网站
  • 静态网站建设的技术运用上海网站企业
  • 站长平台有哪些钦州网站建设排名
  • 女生自己做网站王野天津音乐广播
  • 公司网站门户建设技术参数表有一个做炫舞官网活动的网站
  • 微电商平台培训行业seo整站优化
  • 小说阅读网站建设市场需求分析在线制作头像带字
  • 万维网网站系部网站建设中期检查表
  • 信息公开 强化网站建设建设执业资格注册管理中心网站
  • 网站建设教学工作总结网络服务商和网络运营商