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

网上商城建设网站优化心得

网上商城建设,网站优化心得,阳信网站建设,宁波网络公司排名索引的定义 扇区:磁盘存储的最小单位,扇区一般大小为512Byte。磁盘块:文件系统与磁盘交互的的最小单位(计算机系统读写磁盘的最小单位),一个磁盘块由连续几个(2^n)扇区组成&#xf…

索引的定义

  • 扇区:磁盘存储的最小单位,扇区一般大小为512Byte。
  • 磁盘块:文件系统与磁盘交互的的最小单位(计算机系统读写磁盘的最小单位),一个磁盘块由连续几个(2^n)扇区组成,块一般大小一般为4KB。
  • MySQL页: MySQL和磁盘交互的最小单位,相当于4个磁盘块,16KB
  • 顺序IO:按物理存储顺序连续读取/写入数据,预读机制有效,减少磁头寻道时间(对HDD特别重要)。
  • 随机IO:随机IO是跳跃式读写,访问不连续的数据块,HDD 磁头需要频繁移动,难以有效利用预读,SSD 表现更好但仍有性能损耗。

总结:数据库最大的性能损耗就在磁盘IO上,这也是Redis比MySQL快很多的最大原因。索引是依靠某些数据结构和算法来组织数据,尽最大可能去利用磁盘的的顺序IO,并减少IO的次数来优化数据库的访问速度。

MySQL的索引结构

通过索引的定义接下来看MySQL索引数据结构,是如何实现顺序IO,和减少IO访问次数。
在这里插入图片描述MySQL的索引采用B+tree的数据结构,是一种平衡多路查找树(不是二叉,是多叉),最下层的称之为叶子节点,叶子节点的上层为非叶子节点。叶节点具有相同的深度,节点的数据 key 从左到右递增。

非叶子节:

  • 一个非叶子节点只存储多个索引键值和对应的指针,不存储实际数据记录,这些节点在磁盘上以页(Page,16KB)为单位进行存储。这样可以有效降低B+tree的层数,降低IO次数。
  • 一次IO读取可以读取更多的索引键值,大幅降低降低IO读取次数。(MySQL以页为单位和磁盘进行交互)

叶子节点:

  • 在聚簇索引中:存储完整的行数据(包含索引键值)
  • 在二级索引中:存储索引列的值 + 主键值
  • 双向链表结构,支持范围查找,可以沿着叶子节点的链表顺序遍历,避免从根节点查找,减少IO次数

索引的分类

  • 聚集索引:每个表有且一定会有一个聚集索引,关键字为主键,没有指定主键则自动添加一个隐藏的rowid(4byte)作为主键,所以也叫主键索引
  • 非聚集索引(辅助索引):叶子节点存储索引字段和主键值,其他子节点只存储索引字段
  • 回表 因索引叶子节点只存储主键和索引字段,如果查询其他字段就需要再查询一次主键索引,这就是回表。

索引的缺点

  • 增加存储成本
    索引本身需要占用一定的存储空间。对于大型数据库表,索引文件可能会变得非常庞大。例如,一个包含大量文本字段的数据库表,若在多个列上建立索引,索引文件的大小可能会与数据表本身的大小相当,甚至超过数据表的大小。这就需要额外的磁盘空间来存储索引数据,增加了存储成本。
  • 降低写入性能
    在对数据表进行插入(INSERT)、更新(UPDATE)和删除(DELETE)操作时,数据库需要同时维护索引的正确性。这些额外的操作会增加写入操作的时间和资源消耗,从而降低写入性能。特别是在高并发的写入场景下,频繁地维护索引可能会导致性能瓶颈。

索引使用原则

  • 最左原则: 复合索引 (a,b,c ) 如果查询条件只有 c = ? 或 b = ? and c= ? 时不会走索引,只有使用最左边的a 为条件时才会走索引。
  • 前缀匹配:使用like时,% 在前会使索引失效,%在后时,只能使用部分索引。
  • 索引区分度:索引区分度 = count(distint 记录) / count(记录),索引区分度非常小就接近于全表扫描了,所以创建索引时要选择区分度高的。
  • in 查询 相当于多个 唯一记录检索,然后合并结果。
  • 当多个条件中有索引的时候,并且关系是and的时候,会走索引区分度高的。
  • 避免回表操作,在设计数据库时,需要根据业务场景评估是否需要创建聚簇索引或合适的二级索引,以减少回表操作。
  • 字符串索引列,查询条件为 和 int比较 会导致索引失效。
  • int 索引列,查询条件为 和字符串比较,索引不会失效。
  • 使用union 关键字代替 or 。
  • 索引字段,使用函数,索引无效。
  • 索引字段使用运算符,索引无效 id +1 = 2 无效 id= 2+1索引有效。
  • 使用索引优化排序,B+树 就是按照索引值排序的链表,查询的结果自带排序。
http://www.dtcms.com/a/591163.html

相关文章:

  • 服务器用来做网站空间WordPress使用固定连接
  • 营销型网站建设 兼职企业形象网站策划方案
  • 宜良网站建设网站设计的公司
  • 网站销售网站seo外链平台
  • 营销型网站开发流程网站代理服务器有问题
  • 网站制作软件是什么意思wordpress 初始化sql
  • 个人网站备案可以做公司网站用wordpress 报表图形
  • 网站title是什么意思wordpress适合外贸的主题
  • 汉中建筑信息平台seo外链怎么做能看到效果
  • 沐风+wordpress+主题西安seo招聘
  • html的网站模板下载漳州房产网
  • 快看点自媒体平台东营网站排名优化公司
  • 做兼职什么网站辽宁省城乡建设厅官方网站
  • 怎么自己制作属于自己的网站数字展厅制作公司
  • 国外常用视频网站tenor怎么设置h5教程入门
  • 建设股公司网站湖南平台网站建设方案
  • 建设银行租房网站湖北邵阳网页
  • 漯河商城网站建设深圳建设局网站打不开
  • 南京网站排名优化费用百度热度指数排行
  • 计算机网络自顶向下方法42——网络层 自治系统间路由选择:BGP 深度解析
  • 做网站钱郑州手机网站
  • 广州网站建设广州在公司做网站是什么职位
  • 基于 Python 和 Qt 的尺寸数据输入系统设计与实现
  • h5神兽平台正规的代理seo推广的全称是
  • 南阳公司网站建设VR网站建设价格
  • 云南建设网站郑州网络营销学校
  • 泰州网站建设搭建移动网站建设学习
  • 正中路桥建设发展有限公司网站电子商务与网站建设策划书
  • 手机端怎样做网站建设网站优化和推广方案ppt
  • 怎么自己创建网站或者app24小时自动发货网站建设