mysql事务对查询有没有影响
发布网友
发布时间:2023-02-09 07:35
我来回答
共4个回答
热心网友
时间:2024-08-24 09:13
您好,MySQL事务对查询有着重要的影响。MySQL事务是一种数据库技术,它可以保证一组SQL语句在执行过程中的原子性,即要么全部执行,要么全部不执行。这意味着,当您使用MySQL事务时,您可以确保您的查询不会被中断,从而保证查询的完整性和一致性。MySQL事务还可以帮助您控制数据库的可用性,确保您的查询不会被其他用户的操作所干扰。此外,MySQL事务还可以帮助您控制数据库的安全性,确保您的查询不会被未经授权的用户访问。总之,MySQL事务对查询有着重要的影响,它可以帮助您更好地控制数据库的可用性、一致性和安全性。
热心网友
时间:2024-08-24 09:13
什么是大事务
定义:运行时间比较长,操作的数据比较多的事务。
大事务风险:
锁定太多的数据,造成大量的阻塞和锁超时,回滚所需要的时间比较长。
执行时间长,容易造成主从延迟。
如何处理大事务:
避免一次处理太多大数据。
移出不必要在事务中的select操作
二、什么是事务
1.原子性:一个事务必须被视为一个不可分割的最小工作单元整个事务的所有操作要么全部提交成功,要么全部失败,对于一个事务来说不可能只执行其中一部分。例如:银行卡转账(整个事务中的所有操作要么全部提交成功要么全部失败)。
2.事务的一致性:一致性是指事务将数据库从一种一致性状态转换到另外一种一致性状态,在事务开始之前和事务结束后数据库中数据的完整性没有被破坏。例如:银行卡转账(一张减去100元,一张增加100元数据没有变化)。
3.事务的隔离性:一个事务对数据库中数据的修改,在未提交完成前对于其他事务不可见的。
读未提交(read-uncommitted):就是一个事务可以读取另一个未提交事务的数据脏读(脏读)
读已提交(read-committed):就是一个事务要等另一个事务提交后才能读取数据(不可重复读)
可重复读(repeatable-read):就是在开始读取数据(事务开启)时,不再允许修改操作
可串行化(serializable):是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。
分析:若有事务对数据进行更新(UPDATE)操作时,读操作事务要等待这个更新操作事务提交后才能读取数据,可以解决脏读问题。但是会出现了一个事务范围内两个相同的查询却返回了不同数据,这就是不可重复读。
注意:
并发性由高到低1>2>3>4
隔离性由高到低4>3>2>1
show variables like '%iso%'(查看当前隔离性级别)
set session tx_isolation (设置隔离级别)
4.事务的持久性:一旦事务提交,则其所做的修改就会永久的保存到数据库中,此时即使系统崩溃,已经提交的修改数据也不会丢失。
三、大表带来的问题
大表定义:单表超过千万行、文件超过10G
大表对查询的影响:
慢查询、
区分度底、
大量磁盘IO、
建立索引需要很长的时间、
修改表结构需要长时间锁表、
影响正常的数据操作
如何处理大表问题:
分库分表把一张表分成多个小表。难点:分表主键的选择、分表后夸分区数据的查询和统计。
大表的历史数据归档(前端增加历史查询)难点:时间点选择,如何进行归档操作
四、在大促中数据库服务器
数据库架构:主从复制、读写分离、集群等。
TPS:每秒处理事务的速度(一个事务三个过程)。
用户请求服务器
服务器内部处理
服务器返回给用户。
QPS:是一台指定服务器每秒能够相应的查询次数。
并发量:同一时间处理的请求的数量。
连接数:和服务器进行连接,但大部分处于sleep状态,只有少部分在运行。
并发量大,连接数大说明cpu空闲少繁忙。
磁盘IO读写过高会对服务器性能能造成影响。
不要在主库上数据库备份(磁盘读压力增大)。
有问题请关注【运维开发实战】小编会及时回复
mysql
数据库
java
点赞文章给优秀博主打call~
女士高跟皮鞋
精选推荐
广告
热心网友
时间:2024-08-24 09:14
mysql事务对查询有没有影响?
回答是:一般情况,mysql事务对查询有影响
热心网友
时间:2024-08-24 09:14
有新增材料时,删除材料并没有立即执行,导致查询时还是查询到了未删除的数据。