文章 2022-02-14 来自:开发者社区

MYSQL性能调优08_事务及其ACID属性、脏读、不可重复读、幻读、隔离级别、行锁、表锁、读锁、写锁、间隙锁、临键锁(四)

⑦. 间隙锁(Gap Lock)①. 间隙锁,锁的就是两个值之间的空隙。Mysql默认级别是repeatable-read,有办法解决幻读问题吗?间隙锁 在某些情况下可以解决幻读问题。②. 假设account表里数据如下:那么间隙就有 id 为 (3,10),(10,20),(20,正无穷) 这三个区间,在Session_1下面执行 update account set name = ‘zhug....

MYSQL性能调优08_事务及其ACID属性、脏读、不可重复读、幻读、隔离级别、行锁、表锁、读锁、写锁、间隙锁、临键锁(四)
文章 2022-02-14 来自:开发者社区

MYSQL性能调优08_事务及其ACID属性、脏读、不可重复读、幻读、隔离级别、行锁、表锁、读锁、写锁、间隙锁、临键锁(三)

⑤. 表锁①. 每次操作锁住整张表。开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低;一般用在整表数据迁移的场景。CREATE TABLE `mylock` ( `id` INT (11) NOT NULL AUTO_INCREMENT, `NAME` VARCHAR (20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGIN...

MYSQL性能调优08_事务及其ACID属性、脏读、不可重复读、幻读、隔离级别、行锁、表锁、读锁、写锁、间隙锁、临键锁(三)
文章 2022-02-14 来自:开发者社区

MYSQL性能调优08_事务及其ACID属性、脏读、不可重复读、幻读、隔离级别、行锁、表锁、读锁、写锁、间隙锁、临键锁(二)

③. 隔离级别①. 多个事务之间隔离的,相互独立的。但是如果多个事务操作同一批数据,则会引发一些问题,设置不同的隔离级别就可以解决这些问题②. 隔离级别从小到大安全性越来越高,但是效率越来越低③. 事务的隔离级别总结:④. 查看隔离级别:select @@tx_isolation⑤. 设置当前mysql的隔离级别:set session transaction isolation level 隔....

MYSQL性能调优08_事务及其ACID属性、脏读、不可重复读、幻读、隔离级别、行锁、表锁、读锁、写锁、间隙锁、临键锁(二)
文章 2022-02-14 来自:开发者社区

MYSQL性能调优08_事务及其ACID属性、脏读、不可重复读、幻读、隔离级别、行锁、表锁、读锁、写锁、间隙锁、临键锁(一)

①. 事务及其ACID属性事务:一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行①. 原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生②. 一致性(Consistency):一个事务执行会使数据从一个一致转态切换到另外一个一致状态(创建订单、库存减少、积分增加是指的数据层面)③. 隔离性(Isolation)....

文章 2022-02-14 来自:开发者社区

MYSQL性能调优07_MySQL数据类型选择、数值类型、日期和时间、字符串(三)

③. 字符串①. 字符串的长度相差较大用VARCHAR;字符串短,且所有值都接近一个长度用CHAR②. CHAR和VARCHAR适用于包括人名、邮政编码、电话号码和不超过255个字符长度的任意字母数字组合。那些要用来计算的数字不要用VARCHAR类型保存,因为可能会导致一些与计算相关的问题。换句话说,可能影响到计算的准确性和完整性。③. 尽量少用BLOB和TEXT,如果实在要用可以考虑将BLOB....

MYSQL性能调优07_MySQL数据类型选择、数值类型、日期和时间、字符串(三)
文章 2022-02-14 来自:开发者社区

MYSQL性能调优07_MySQL数据类型选择、数值类型、日期和时间、字符串(二)

②. 日期和时间①. MySQL能存储的最小时间粒度为秒②. 建议用DATE数据类型来保存日期。MySQL中默认的日期格式是yyyy-mm-dd。③. 用MySQL的内建类型DATE、TIME、DATETIME来存储时间,而不是使用字符串。④. 当数据格式为TIMESTAMP和DATETIME时,可以用CURRENT_TIMESTAMP作为默认(MySQL5.6以后),MySQL会自动返回记录插....

MYSQL性能调优07_MySQL数据类型选择、数值类型、日期和时间、字符串(二)
文章 2022-02-14 来自:开发者社区

MYSQL性能调优07_MySQL数据类型选择、数值类型、日期和时间、字符串(一)

①. MySQL数据类型选择①. 在MySQL中,选择正确的数据类型,对于性能至关重要。一般应该遵循下面两步:确定合适的大类型:数字、字符串、时间、二进制;确定具体的类型:有无符号、取值范围、变长定长等。②. 在MySQL数据类型设置方面,尽量用更小的数据类型,因为它们通常有更好的性能,花费更少的硬件资源。并且,尽量把字段定义为NOT NULL,避免使用NULL。②. 数值类型①. 如果整形数据....

MYSQL性能调优07_MySQL数据类型选择、数值类型、日期和时间、字符串(一)
文章 2022-02-14 来自:开发者社区

MYSQL性能调优06_分页查询优化、JOIN关联查询优化、in和exsits优化、count(*)查询优化(三)

③. in和exsits优化①. in后面跟的是小表,exists后面跟的是大表②. in:当B表的数据集小于A表的数据集时,in优于existsselect * from A where id in (select id from B) #等价于:   for(select id from B){ select * from A where A.id = B.id }③...

MYSQL性能调优06_分页查询优化、JOIN关联查询优化、in和exsits优化、count(*)查询优化(三)
文章 2022-02-14 来自:开发者社区

MYSQL性能调优06_分页查询优化、JOIN关联查询优化、in和exsits优化、count(*)查询优化(二)

②. Join关联查询优化①. 坏境搭建-- 示例表: CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_a` (`a`) ) ENGINE=Inno...

MYSQL性能调优06_分页查询优化、JOIN关联查询优化、in和exsits优化、count(*)查询优化(二)
文章 2022-02-14 来自:开发者社区

MYSQL性能调优06_分页查询优化、JOIN关联查询优化、in和exsits优化、count(*)查询优化(一)

①. 分页查询优化①. 坏境准备表示从表 employees 中取出从 10001 行开始的 10 行记录。看似只查询了 10 条记录,实际这条 SQL 是先读取 10010 条记录,然后抛弃前 10000 条记录,然后读到后面 10 条想要的数据。因此要查询一张大表比较靠后的数据,执行效率是非常低的示例表: CREATE TABLE `employees` ( `id` int(11) N...

MYSQL性能调优06_分页查询优化、JOIN关联查询优化、in和exsits优化、count(*)查询优化(一)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。