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

做网站公司郑州郑州的网站建设公司哪家好企业门户网站建设 北京

做网站公司郑州郑州的网站建设公司哪家好,企业门户网站建设 北京,陕西交通建设集团官方网站,龙岗网站开发其他资料 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 每日速记10道java面试题03-CSDN博客 每日速记10道java面试题04-CSDN博客 每日速记10道java面试题05-CSDN博客 每日速记10道java面试题06-CSDN博客 每日速记10道java面试题07-CSDN博客 每…

其他资料

每日速记10道java面试题01-CSDN博客

每日速记10道java面试题02-CSDN博客

每日速记10道java面试题03-CSDN博客

每日速记10道java面试题04-CSDN博客

每日速记10道java面试题05-CSDN博客

每日速记10道java面试题06-CSDN博客

每日速记10道java面试题07-CSDN博客

每日速记10道java面试题08-CSDN博客

每日速记10道java面试题09-CSDN博客

每日速记10道java面试题10-CSDN博客

每日速记10道java面试题11-CSDN博客

每日速记10道java面试题12-CSDN博客

目录

1.MySQL中的数据排序是怎么实现的?

2.那怎么去优化ORDER BY呢?

3.MySQL中的Change Buffer是什么?有什么作用?

 4.详细描述一下一条SQL语句在MySQL中的执行过程

5.MySQL的存储引擎有哪些?

6.MySQL的索引有哪些?

7.MySQLInnoDB 引擎中的聚集索引和非聚集索引有什么区别? 

8.MySQL索引的最左前缀匹配原则是什么?

9.MySQL的覆盖索引是什么?

10.MySQL的索引下推是什么?


1.MySQL中的数据排序是怎么实现的?

MySQL中的数据排序主要通过ORDER BY子句实现,其底层实现机制主要有两种方式:

使用索引排序:当ORDER BY子句中的列恰好有对应的索引时,MySQL可以直接利用索引来完成排序操作,这是最高效的排序方式。索引本身是有序的,所以MySQL只需要按照索引的顺序扫描即可得到排序后的结果。

文件排序(flesort):当无法使用索引进行排序时,MySQL会使用文件排序。这种方法会将需要排序的数据加载到内存中,然后在内存中进行排序。如果数据量较大,超过了系统变量 sort buffer size 的大小,还会使用临时文件来协助排序。

具体实现如下:

首先,MySQL会检查ORDER BY子句中的列是否有可用的索引,如果有可用的索引,MySQL会直接使用索引进行排序。如果没有可用的索引,MySQL会执行以下步骤:
1.从表中读取满足条件的所有行
2.对于每一行,只保存需要排序的列和可以唯一标识行的列(如主键)
3.使用快速排序算法在内存中对这些数据进行排序
4.如果数据量太大,会使用临时文件来辅助排序
5.根据排序结果回表查询所需的列

延伸→那怎么去优化ORDER BY呢?

2.那怎么去优化ORDER BY呢?

1.根据排序字段建立合适的索引,多字段排序时,也遵循最左前缀法则
2.尽量使用覆盖索引
3.多字段排序,一个升序一个降序,此时需要注意联合索引在创建时的规则(ASC/DESC)
4.如果不可避免的出现file sort,大数据量排序时,可以适当增大排序缓冲区大小sort_buffer_size(默认256K)   SQL语句:show variables like 'sort_buffer_size';

3.MySQL中的Change Buffer是什么?有什么作用?

Change Buffer ,更改缓冲区(针对于非唯一二级索引页),在执行 DML语句(增删改)时,如果这些数据Page 没有在Buffer Pool中,不会直接操作磁盘,而会将数据变更存在更改缓冲区Change Buffer 中,在未来数据被读取时,再将数据合并恢复到Buffer Pool中,再将合并后的数据刷新到磁盘中。

至于Buffer Pool是什么?可以去参考我的另一篇文章:MySQL数据表中的InnoDB引擎原理(存储结构+架构+事务原理+MVCC)_mysql innodb存储引擎实现原理-CSDN博客

 4.详细描述一下一条SQL语句在MySQL中的执行过程

1.当客户端的SQL发送到MySQL时,第一步是来到serve层的连接器,连接器会去验证身份和权限,因为你有连接数据库的权限不代表就有操作数据库的权限;

2.下一步就到了分析器进行SQL语法和词法分析,判断你这条SQL是什么类型的语句以及携带什么样的参数;

3.经过分析器之后就到了优化器,优化器会帮助我们选择使用哪个索引以及如果这条SQL涉及多表查询,优化器还会帮我们选择连表顺序;

4.最后到达执行器,执行器会操作存储引擎提供的接口并执行经过分析器分析以及优化器优化过后的SQL语句,并返回结果。

5.MySQL的存储引擎有哪些?

1.InnoDB:是Mysq!默认的存储引擎,支持事务,表级锁和粒度更小的行级锁,具有事务提交,回滚和数据崩溃恢复的功能
2. MyISAM: 是之前Mysql默认的存储引擎,不支持事务和行级锁,支持表级锁,锁的粒度较大,更新性能较差,更适合读多写少的场景
3.Memory:相较于InnoDB和MyISAM,Memroy是存在于内存中的,速度更快,但是不具有持久化的能力,适合临时存储的场景

6.MySQL的索引有哪些?

按索引的存储形式来分:聚集索引和二级索引

按索引的具体类型来分有:主键索引、唯一索引、常规索引、全文索引。

关于索引的其他只是可以参考我其他文章:深度解析MySQL数据库索引是什么?有什么用?怎么用?_mysql索引的使用和原理-CSDN博客

7.MySQLInnoDB 引擎中的聚集索引和非聚集索引有什么区别? 

 聚集索引:索引叶子节点存的是数据行,可以直接访问整条数据,而且一张表只有一个聚集索引,通常是主键索引。

非聚集索引:索引叶子节点存的是主键和对应的索引列,一般走非聚集索引,如果不是覆盖索引还有回去聚集索引再查一次数据,这个过程叫回表查询。

8.MySQL索引的最左前缀匹配原则是什么?

在使用联合索引时,查询条件必须从索引的最左侧开始匹配。如果一个联合索引包含多个列,查询条件必须包含第一个列的条件,然后是第二个列,以此类推。

具体例子可以看以下我的文章:

深度解析MySQL数据库索引是什么?有什么用?怎么用?_mysql索引的使用和原理-CSDN博客

9.MySQL的覆盖索引是什么?

MySQL 的覆盖索引(Covering lndex)是指二级索引中包含了查询所需的所有字段,从而使查询可以仅通过访问二级索引而不需要访问实际的表数据(主键索引)。,不需要回表查询,性能就会好很多。

10.MySQL的索引下推是什么?

索引下推是一种减少回表查询,提高查询效率的技术。它允许 MySQL 在使用索引查找数据时,将部分查询条件下推到存储引擎层过滤,从而减少需要从表中读取的数据行,减少了 IO(本该由 Server 层做操作,交由存储引擎层因此叫做“下推”)

简单来说就是:

如果没有索引下推,流程就是通过二级索引查到主键id后回表完再进行where条件过滤 

有索引下推,流程就是二级索引查到数据后直接where过滤一遍 再进行回表 减少回表的次数

其实就是回表前再过滤一下,这样子回表查询的时候少查了一些数据,提高效率。

http://www.yayakq.cn/news/397449/

相关文章:

  • 维护中网站培训课程有哪些
  • 过期域名查询网站免展网站后台注册
  • 大凤号 网站建设个人智慧团建系统登录
  • 网站开发项目管理个人免费注册公司
  • 怎样给自己的网站做防红连接网站建设程序源码
  • 静态旅游网站crm系统搭建
  • 上海营销网站制作wordpress cdn推荐
  • 网站建设音乐插件怎么弄太原网站建设 世纪优创
  • 无锡网站制作方案微信运营环境加载失败怎么办
  • 建网站找哪家公司提升网站权重吗
  • 开锁换锁公司网站模板WordPress自适应播放器代码
  • 腾讯云服务器可以干嘛郑州互联网seo使用教程
  • 深圳网站seo 乐云践新制作链接的小程序
  • 网站怎么申请中小企业网站建设方案
  • 深圳住房和建设局网站官网.网站建设的基本步骤
  • 上海手机网站制作公司鞍山百姓网
  • 如何做中介网站舆情优化
  • wordpress仿站价格广告制作协议
  • 上线了做网站要钱企业网站的内容模块
  • 做网站找我们网站建设所需人力时间
  • 自己做网站都要什么淘宝seo搜索引擎原理
  • 网站开发域名注册最近民生新闻100条
  • 石家庄正规制作网站公司四平市建设局网站
  • 网站建设一条龙全包淘宝运营培训学校
  • 简单风景网站模版优普道建筑网校
  • 百度做网站 推广费用怎么收可以在线观看的免费资源
  • 合肥市建设工程市场价格信息网站网址缩短生成链接
  • 响应页手机网站源码梅州建站规划
  • 玉山网站建设数字化营销与传统营销的区别
  • 如何用flashfxp上传网站广州手机网站定制信息