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

每日mysql

Mysql中使用索引一定有效吗?如何排查索引效果。

索引不一定有效;

当索引字段的基数过小的时候,查询条件不包含索引或者查询条件与索引的顺序不匹配的时候(不满足最左前缀匹配原则)。小表的索引查询也不一定生效,因为全表查询的效率可能高于索引查询,具体是否生效需要mysql计算成本之后确定。

排查索引效果可以使用expain命令,查看sql的执行计划,关注type,key,rows属性,type是访问类型,为all的时候为全表扫描。

key属性是被使用的索引,为null说明没有使用索引,rows属性是遍历的行的数量。可以评估sql的查询效率。

Mysql中的事务隔离级别有哪些

隔离级别由低到高为

读未提交:一个事务可以读取另一个事务未提交的数据,当另一个事务发生回滚的时候,产生前后数据不一致也就是我们说的脏读现象

读已提交(部分大厂隔离级别):一个事务可以读取另一个事务已提交的数据,而当另一个事务对数据产生更新的时候。会导致在事务中俩次读取的数据不一致。这就是不可重复读。

可重复读(mysql默认的隔离级别):这个级别确认一个事务中每一次读取的返回结果都是一致的,避免了不可重复渎,但是可能产生幻读。

串行化:当一个事务提交后才会开始下一个事务,避免了幻读的情况。但是没有了并发性,效率低。安全性高。

Mysql中的索引数量是否越多越好

索引不是越多越好,因为索引需要空间成本和时间成本。

时间成本方面:当数据发生更新,插入删除等操作的时候,索引也要更新,索引越多更新的越多,时间成本越多。

空间成本方面:一个索引就对应一棵b+树,索引越多,b+树越多,占用的空间越多,空间成本越大。

数据库的脏读,不可重复读,幻读分别是什么

脏读发生在读未提交这个级别,当一个事务读取到另一个事务未提交的数据的时候,这个数据发生了回滚,会导致第一次读取的数据不一致,这就是脏读。

不可重复渎发生在读已提交这个级别,在一个事务查询数据后,另一个事务已经提交了的修改的时候,这个事务再一次读取到的数据就是修改后的数据,在同一个事务中多次读取的数据可能不一致。这就是不可重复读。

幻读发生在可重复读这个级别,在一个事务中多次查询返回的数据行的数量可能不一致,这就是幻读。

Mysql的查询优化器如何选择执行计划

首先把sql解析为解析树,如何进行预处理,然后计算其cpu成本和io成本,最后选择总成本最小的索引。

Mysql的默认事务隔离级别是什么,为什么选择这个级别

Mysql的默认隔离级别是可重复读。为了解决早期binlog只支持statement格式的而导致的主从数据不一致的问题。虽然mysql5.1之后支持row格式,但是可重复读这个级别在性能和安全性上算比较平衡,因此还是这个级别。

为什么大厂一般使用RC(读已提交)

提升并发,减少死锁。

count(1) ,count(*), count(字段名)有什么区别

count(1)和count(*) 没有区别,都是统计表中的数据条数,null也统计。

count(字段名) 统计该字段不为空的数据条数。

推荐八股文学习网站(要会员,但是真的很值!终身会员!):

https://www.mianshiya.com/?shareCode=s4stlv

http://www.dtcms.com/a/279284.html

相关文章:

  • # 检测 COM 服务器在线状态
  • 在Linux下git的使用
  • 7.14练习案例总结
  • 渗透第一次总结
  • ThreadLocal内部结构深度解析(Ⅰ)
  • Olingo分析和实践——整体架构流程
  • idea下无法打开sceneBulider解决方法
  • JavaScript书写基础和基本数据类型
  • 关于僵尸进程
  • SwiftUI 全面介绍与使用指南
  • SSM框架学习——day1
  • 爬虫-爬取豆瓣top250
  • webrtc之子带分割下——SplittingFilter源码分析
  • vscode插件之markdown预览mermaid、markmap、markdown
  • 直播推流技术底层逻辑详解与私有化实现方案-以rmtp rtc hls为例-优雅草卓伊凡
  • 当 `conda list` 里出现两个 pip:一步步拆解并卸载冲突包
  • 2025年轨道交通与导航国际会议(ICRTN 2025)
  • 【数据同化案例1】ETKF求解参数-状态联合估计的同化系统(完整MATLAB实现)
  • C#结构体:值类型的设计艺术与实战指南
  • 2025年新能源与可持续发展国际会议(ICNESD 2025)
  • 非正常申请有这么多好处,为什么还要大力打击?
  • TreeSize Free - windows下硬盘空间管理工具
  • 一分钟K线实时数据数据接口,逐笔明细数据接口,分时成交量数据接口,实时五档委托单数据接口,历史逐笔明细数据接口,历史分时成交量数据接口
  • RESTful API 设计规范
  • 为什么资深C++开发者大部分选vector?揭秘背后的硬核性能真相!
  • Nginx配置信息
  • 项目进度图不直观,如何优化展示方式
  • 一种用于医学图像分割的使用了多尺寸注意力Transformer的混合模型: HyTransMA
  • SecretFlow 隐语 (2) --- 隐语架构概览
  • SQL性能调优经验总结