当前位置: 首页 > 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.lryc.cn/news/588497.html

相关文章:

  • RAG索引流程中的文档解析:工业级实践方案与最佳实践
  • 【Linux网络】:HTTP(应用层协议)
  • 学习软件测试的第十五天
  • 【DOCKER】-6 docker的资源限制与监控
  • Linux操作系统之信号:信号的产生
  • 深入学习前端 Proxy 和 Reflect:现代 JavaScript 元编程核心
  • Modbus 开发工具实战:ModScan32 与 Wireshark 抓包分析(二)
  • Swift 解 LeetCode 326:两种方法判断是否是 3 的幂,含循环与数学技巧
  • [硬件电路-21]:模拟信号处理运算与数字信号处理运算的详细比较
  • 无人机迫降模式模块运行方式概述!
  • ICMP隧道工具完全指南:原理、实战与防御策略
  • Datawhale AI夏令营大模型 task2.1
  • 【科研绘图系列】R语言绘制世界地图
  • 硬盘爆满不够用?这个免费神器帮你找回50GB硬盘空间
  • 【React Natve】NetworkError 和 TouchableOpacity 组件
  • 网络编程(TCP连接)
  • 代理模式详解:代理、策略与模板方法模式
  • 暑期自学嵌入式——Day02(C语言阶段)
  • PyTorch张量(Tensor)创建的方式汇总详解和代码示例
  • 如何降低AIGC的查重率?精选六个AIGC降重让论文更出色
  • 《每日AI-人工智能-编程日报》--2025年7月14日
  • Android Studio C++/JNI/Kotlin 示例 三
  • git项目,有idea文件夹,怎么去掉
  • Mybatis(黑马)
  • 网络传输过程
  • 理解Linux文件系统:从物理存储到统一接口
  • 小波变换 | 离散小波变换
  • 学习笔记——农作物遥感识别与大范围农作物类别制图的若干关键问题
  • rsyslog简单应用
  • Linux中的系统日志(Rsyslog)