MYSQL
文章平均质量分 63
介绍mysql中重要机制,锁,事务,MVCC等内容
不秃头的小黄人
这个作者很懒,什么都没留下…
展开
-
腾讯面试官: 给我讲讲B树索引的作用吧?? (MRR优化,顺序读,随机读,临时表)
1.索引能极大地减少扫描行数,加快查询速度因为B+树索引是一种排好序的,可用于快速查找的数据结构,因为当我们查找特定数据时,往往只需几次IO;2.索引可以帮助服务器避免排序和临时表当我们正常运行 sql 语句的时候,如果不使用索引运行下面这条语句:SELECT * FROM user order by age desc;MySQL 的流程是这样的扫描所有行,把所有行加载到内存后再按 age 排序生成一张临时表,再把这表排序后将相应行返回给客户端,更糟的,如果这张临时表的大小大于 tm原创 2021-10-17 16:44:50 · 291 阅读 · 0 评论 -
Mysql中<=> 和 < > 的区别??
< > 运算符作用:表示不等于。说明:和 “!=” 运算符的作用一致,相较之下 “<>” 的可读性较差。查询非汉族用户,以下两条语句的作用是一致的。SELECT * FROM user WHERE nation != “汉族”;SELECT * FROM user WHERE nation <> “汉族”;查询非汉族用户,以下两条语句的作用是一致的。SELECT * FROM user WHERE nation != “汉族”;SELECT *原创 2021-10-16 20:08:19 · 814 阅读 · 0 评论 -
select ** from a,b 与 select ** from a join b on 的区别???
区别首先,这两种写法其实是一个意思,都是表达的内联结的意思,只是语法不同SELECT vend_name, prod_name, prod_priceFROM Vendors, ProductsWHERE Vendors.vend_id = Products.vend_id;------------------------------------------SELECT vend_name, prod_name, prod_priceFROM Vendors INNER JOIN Prod原创 2021-09-28 16:06:46 · 1597 阅读 · 0 评论 -
02 | 日志系统:一条SQL更新语句是如何执行的?
前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。那么,一条更新语句的执行流程又是怎样的呢?之前你可能经常听 DBA 同事说,MySQL 可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢?我们还是从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键 ID 和一个整型字段 c:mysql> create table转载 2021-09-25 18:09:12 · 165 阅读 · 0 评论 -
MYSQL实战45讲(一)一条SQL查询语句是如何执行的?
这是专栏的第一篇文章,我想来跟你聊聊 MySQL 的基础架构。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时:mysql> select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部的执行过程。所以今天我想和你一起把转载 2021-09-25 17:57:23 · 190 阅读 · 0 评论 -
mysql的7种join(图码并茂,清晰易懂!)
mysql的7种join1.总括2.具体实现(1)内连接(inner join 可简写为join)(2)左外连接(3)右外连接(4)全外连接1.总括mysql种共有7种join(但实际上只有4种主要的:左外连接,右外连接,内连接,全外连接`以下7种不过在此基础上有一些变动:2.具体实现(1)内连接(inner join 可简写为join)从图可知:就是交集,也就是两张表的共同数据;用sql语句表示为:select * from a [inner] join b on a.key = b原创 2021-01-22 10:52:18 · 25115 阅读 · 4 评论 -
SQL中timestamp和datetime的区别?
datetime1、允许为空值,可以自定义值,系统不会自动修改其值。2、不可以设定默认值,所以在不允许为空值的情况下,必须手动指定datetime字段的值才可以成功插入数据。3、虽然不可以设定默认值,但是可以在指定datetime字段的值的时候使用now()变量来自动插入系统的当前时间。结论:datetime类型适合用来记录数据的原始的创建时间,因为无论你怎么更改记录中其他字段的值,datetime字段的值都不会改变,除非你手动更改它。timestamp1、允许为空值,但是不可以自定义原创 2020-11-12 16:32:53 · 1023 阅读 · 0 评论