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

摄影 wordpress兰州seo优化

摄影 wordpress,兰州seo优化,做网站的销售团队,wordpress评论啦mysql索引是为了快速查找数据而把数据按照一定规则排列的数据结构 查看数据结构地址:Data Structure Visualization 查看mysql文件页大小(16K) SHOW GLOBAL STATUS like Innodb_page_size; 数据在磁盘上随机分布,不使用索引查找…

mysql索引是为了快速查找数据而把数据按照一定规则排列的数据结构

查看数据结构地址:Data Structure Visualization

查看mysql文件页大小(16K)

SHOW GLOBAL STATUS like 'Innodb_page_size';

数据在磁盘上随机分布,不使用索引查找需要经过多次磁盘IO,索引的作用就是为了减少磁盘IO次数

一、索引数据结构分类

1、二叉树

二叉树的规律是从根节点比左边元素大,比右边元素小;如果自增id索引字段,这时候构建的二叉树就和链表一样,如此树的高度会影响查询速度

2、红黑树

是一种平衡二叉树,会根据插入的数据做平衡,但是实际生产过程中,随着数据量增加,树的高度越高,查询的速度就会越慢

3、b树

多路平衡搜索树,每个节点横向扩展,每个节点可存储多个元素称为一页数据,减少树的高度(每个节点的元素实际存储索引值和数据)

4、b+树

和b树一样,从左到右都是有顺序的,与b树相比,b+树的叶子节点之间有指针指向,非叶子为冗余索引,非叶子节点的元素实际不存储索引值和数据,叶子节点实际索引值和存储

5、hash

经过一次hash运算就可以定位到数据所存储的地址,如果是范围查找,hash索引就会失效

二、myisam和innodb索引

现有两张表my_user1、my_user2,my_user1存储引擎为MyISAM,my_user2存储引擎为InnoDB

不同存储引擎data存储的文件如下,my_user1.frm为表结构文件,my_user1.MYD为表数据文件,my_user1.MYI为表索引文件(myisam存储引擎);my_user2.frm为表结构文件,my_user2.ibd为表索引和数据文件(innodb存储引擎);由此可见,InnoDB存储引擎将索引和数据存储在同一文件中,而MyISAM存储引擎则将索引和数据分开存放:索引存储在MYI文件中,数据存储在MYD文件中。MyISAM通过MYI文件中的索引地址定位MYD文件中的具体数据,需要额外的查找操作

三、索引分类

1、聚集索引

聚簇索引、主键索引都是聚集索引,一个表只能有一个聚集索引;主键索引所有叶子节点存储整张表的数据

2、非聚集索引

稀疏索引、二级索引是一种非聚集索引;非聚集索引叶子节点存储聚集索引值,当有数据在内存中匹配到主键索引值,再到主键索引树上查找对应的数据,这个过程叫回表

联合主键索引和非联合主键索引可以参考上面的聚集索引和非聚集索引,区别是联合索引的索引值是通过多个字段组成一个元素放到一个数据页中,且需要遵循最左前缀原则

四、其它

1、最左前缀原则

假设有一个表table,有一个联合索引,联合索引字段包含a,b,c

select * from table where a = '1' and b = '2' and c = '3'
select * from table where b = '2' and c = '3'
select * from table where c = '3'

第一条sql语句联合索引生效,因为跳过前面的字段,其它后面都是无序 

2、为什么mysql选择b+树而不选择b树

  1. b树每次查询加载根节点的容量是有限制的,而b树的非叶子节点数据页存放所有数据,也就是说b树存放元素比b+树存储的元素要少,树的高度也就越高,IO次数越多,查询越慢

  2. 如果是范围查询,b+树的叶子节点之间有指针指向下一个叶子节点,而b树没有,b+树查询到结果可以返回,而b树把根节点加载到内存,一直循环往下找到结果,由于没有指针指向,又要重新从根节点开始加载

3、为什么建议InnoDB表必须建主键,并且推荐使用整型的自增主键

  1. 如果不建主键,mysql在构建索引树时会从一列中选取不重复数据的列构建b+树,如果没有不重复数据的列,mysql会自己新建一个隐藏列,类似rowid,有点耗费性能

  2. 如果不用整型,像uuid,内部肯定是用ascii码做排序,另一个就是存储空间比整型要大

  3. 为什么要自增,假如b+树节点最大元素容量是3,当超过3个就分裂形成子元素,这时候有一个节点是3,4,9,插入一个5,如果是自增的话只要新增一个节点存储就行,现在插入导致节点分裂,树还要做一下平衡,效率比较低

4、为什么非主键索引结构叶子节点存储的是主键值

  1. 节省空间,如果还存储其它数据,数据量大的话索引占用空间大

  2. 维护索引树方便,因为如果不管什么索引树的叶子节点都存储整张表数据,那肯定要先保证所有索引树的叶子节点都插成功才行;所以像我们这种只维护主键索引树的叶子节点就行,等主键索引插成功再把id维护到非主键索引树的叶子节点上

http://www.dtcms.com/wzjs/442114.html

相关文章:

  • 网站改中文谷歌推广开户
  • 网站开发大数据搜索
  • 哪些网上订餐的网站做的好我对网络营销的理解
  • wordpress移动端添加广告位百度网站优化方案
  • 网站网站建设微信crm系统
  • 网站怎么去优化网络推广方案范文
  • 莱芜做网站的公司深圳seo优化培训
  • 重庆建网站多少钱北京seo服务
  • 网址导航网站域名注册后如何建网站
  • 青海小学网站建设太原百度seo排名软件
  • 建设网站0基础需要学什么深圳网站建设资讯
  • 长春火车站最新消息企业如何做网站
  • 网站备案号添加超链接上海网站seo外包
  • wordpress如何装修品牌seo如何优化
  • 网站开发logo橙子建站官网
  • wordpress caller_get_posts网络优化工程师吃香吗
  • 网站建设是干什么企业网站建设目标
  • 政府类门户网站的制作seo网络推广公司排名
  • 官网的网站开发费用市场调研报告最佳范文
  • 网站做排名有用吗优化疫情防控措施
  • 电销管理系统哪个好用成都百度推广和seo优化
  • 网站建设注意深圳网站建设公司
  • 京东客网站怎么做的近两年成功的网络营销案例及分析
  • visual studio 做网站搜索引擎广告案例
  • 网站备案平台查询系统外贸订单一般在哪个平台接
  • 海门网站建设网络营销该如何发展
  • 宝塔默认安装wordpressseo实战密码第三版pdf
  • 浦东网站建设公司网络营销组合策略
  • 三屏合一网站建设关键词怎么写
  • 我有域名怎么做网站深圳网络推广培训机构