![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql专栏
mysql面试
我是来人间凑数的
一个工作多年,技术却不咋地的程序媛
展开
-
Mysql为什么使用B+Tree作为索引结构
总体来说,我认为技术方案的选型,更多的要根据具体的业务场景来决定,并不一定是说B+树就是最好的选择,就像MongoDB里面采用B树结构,本质上来说,其实是关系型数据库和非关系型数据库的差异。原创 2024-02-04 14:45:21 · 611 阅读 · 0 评论 -
count(1)、count(*)与 count(列名)的区别?
count(*)包括了所有列,相当于行数,在统计结果时候,不会忽略列值为NULLcount(1)包括了忽略所有列,用 1代表代码行,在统计结果时候,不会忽略列值为NULLcount(列名)只包括列名那一列,在统计结果时候,会忽略列值为空(这里空不是只空字符串或者 0,而是表示 null)计数,即某个字段值为 NULL时,不统计。原创 2024-01-09 17:23:36 · 482 阅读 · 0 评论 -
select for update会锁表还是行锁还是其它
select查询语句是不会加锁的,但是 select for update除了有查询的作用外,还会加锁呢,而且它是悲观锁哦。至于加了是行锁还是表锁,这就要看是不是用了索引/主键啦。id为主键,select for update 1270070这条记录时,再开一个事务对该记录更新,发现更新阻塞啦,其实是加锁了。因此,没用索引/主键的话,selectfor update加的就是表锁。我们再开一个事务对另外一条记录 1270071更新,发现更新成功,因此,如。没用索引/主键的话就是表锁,否则就是是行锁。原创 2024-01-04 15:39:23 · 736 阅读 · 0 评论