> 分类: MySQL
为什么需要优化SQL语句?
从开发人员的角度来说,优化SQL语句是为了能够支撑更大的数据量,提供更快性能更好的业务接口。
从用户的角度来说,优化SQL语句是为了给用户提供更好的服务,如更低的响应时间(RT)和更高的每秒事务处理数(TPS)。
如何定位并优化慢的SQL语句?
1. 保持良好的习惯,在每编写完一条SQL语句后都分析下该语句的执行计划,以评估该语句的查询速度,排查潜在的...
2024年03月19日
数据库调优
为什么需要数据库调优?
数据库调优是为了提高数据库的性能、降低接口的响应时间等。体现在以下几个指标:
响应时间(Response Time,RT)
每秒事务处理量(Transaction Per Second,TPS)
每秒查询处理量(Query Per Second,QPS)
如何进行数据库压力测试?
可以使用JMeter工具进行数据库压力测试。下图是使用主键...
2024年03月08日
锁
数据库中的锁有什么作用?
锁是一种并发控制手段,避免多个事务同时对同一条记录进行修改,用来解决线程安全问题。
数据库中的锁有哪些分类?
按照锁的功能来划分:
读锁(Read Locks),也叫共享锁[^1](Shared Locks,S锁)。
写锁(Write Locks),也叫排他锁[^1](Exclusive Locks,X锁)。
按照锁的粒度来划分:
全局锁(G...
2024年01月22日
索引的概念
什么是索引?
索引[^1](Index)是一种数据结构,用来加快查询的速度。如果表中的记录较少时,不创建索引也能满足查询的需求,但如果表中的记录较多时,如果不建立索引查询的速度会很慢。索引本质上是一种空间换时间的策略。
> 可以通过show index from <table_name>命令可以查看指定表中建立的索引。
什么是索引组织表?
索引组织表(Index O...
2024年01月19日
事务
什么是事务?
事务是指一组操作要么全部成功,要么全部失败。事务具有四大特性[^1](ACID):
原子性(Atomicity):指一组操作是原子的,要么全部成功,要么全部失败。
一致性(Consistency):指事务执行前后,数据需要是一致的状态。
隔离性(Isolation):指一个事务执行时,不能受其他事务影响。
持久性(Durability):指事务提交后,对数...
2024年01月17日
MySQL逻辑架构
MySQL的逻辑架构由哪些部分组成?
MySQL的逻辑架构由服务层和存储引擎层组成。其中服务层有以下几部分:
连接器:管理权限,验证连接。
查询缓存:命中缓存直接返回结果(在MySQL8.0版本移除)。
分析器:词法分析,语法分析。
优化器:生成执行计划,选择合适的索引。
执行器:调用存储引擎接口,返回结果。
其中存储引擎层有InnoDB,MyISAM和...
2024年01月14日