![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySql
文章平均质量分 55
燕然一勒
学技以傍身,然后可立足也
展开
-
MySql之sql语句(自用)
搭配group by使用,同组内运算avg(x),sum(x),count(*)数字处理rount(x, 3) 保留3位小数,并四舍五入字符串处理left(str, 5) 截取左端5个字符right(str, 5) 截取右端5个字符排序升序 asc (默认)降序 desc...原创 2021-03-10 18:57:34 · 126 阅读 · 0 评论 -
面试题 MySQL的慢查询、如何监控、如何排查?
1. 慢查询和慢查询日志慢查询,顾名思义就是很慢的查询。MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10s。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志或多或少会带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将原创 2020-12-18 19:08:56 · 5740 阅读 · 2 评论 -
MySQL的连接查询
MySQL的连接查询类型有:内连接、左外连接、右外连接,自连接1. 内连接关键字:inner join......on说明:组合两个表中的记录,返回关联字段符合查询条件的记录,也就是返回两个表的交集(阴影)部分。select *from table1 inner join table2where table1.id = table2.id2. 左外连接关键字:left outer join......on说明:左(外)连接,左表(table1)的记录将会全部表示出来,而原创 2020-12-18 16:31:50 · 1409 阅读 · 3 评论 -
MySQL中 char和varchar的区别
1. 最大字符长度CHAR(M)最大长度为255字节(-1) VARCHAR(M)最大长度是65532字节(-1)2. 长度是否可变CHAR是定长的,这意味着,当你定义的字段类型是CHAR(32),那么无论你存1个还是10个字符,数据库都是分配32个字符的空间。而后面没用完的,就用空格填充。 VARCHAR是变长的,这意味着,当你定义VARCHAR(32)的字段,存1个字符就占1个空间、存10个就占10个空间,不进行额外填充。此外,VARCHAR值存储的时候是“ 长度前缀+数据”,长度前缀为1原创 2020-12-18 12:25:32 · 398 阅读 · 0 评论 -
面试必会 MySql的锁机制(InnoDB)
InnoDB中的行级锁是对索引加的锁,在通过索引查询数据的时候会使用行锁;在不通过索引查询数据的时候,InnoDB就会使用表锁;而到底是使用行锁还是表锁,要看执行计划原创 2020-12-12 22:19:11 · 322 阅读 · 3 评论 -
面试必会 InnoDB的多版本并发控制(MVCC)
实现并发控制的方法有加锁和MVCC。纯锁的方式只实现了读-读兼容,而读-写,写-读,写-写都是冲突的,这就会产生较多的锁阻塞,并发效率低。 而我们亲爱的MVCC,它实现了读-写,写-读的兼容,大大减少了锁阻塞,提高了并发效率!原创 2020-12-12 16:00:50 · 323 阅读 · 0 评论 -
InnoDB的RR隔离级别能否防止“幻读”
结论:能怎么实现幻读:间隙锁和MVCC也就是说,InnoDB有些特殊,本来RR级别是存在幻读问题的,但是InnoDB在实现的时候,通过GAP锁机制或者MVCC有效防止了幻读现象参考这篇文章一、快照读和当前读在RR级别中,通过MVCC机制,虽然让数据变得可重复读,但我们读到的数据可能是历史数据,不是数据库最新的数据。这种读取历史数据的方式,我们叫它快照读 (snapshot read),而读取数据库最新版本数据的方式,叫当前读 (current read),这两者是冲突的。1.快照读当执行sel原创 2020-12-11 22:51:27 · 316 阅读 · 0 评论