![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 71
weixin_43831204
记录每一点进步
展开
-
mysql的变量和赋值
https://www.cnblogs.com/Brambling/p/9259375.html 变量,https://blog.csdn.net/qq_37155959/article/details/81005287 赋值原创 2021-06-07 23:16:30 · 1081 阅读 · 0 评论 -
Mysql两道思考题
1、假定MySQL设定的页长度是16K,表主键是bigint,每行数据是500字节,根节点高度为1,以下说法正确的是()A. 如果需要存 2W 条数据,则聚合索引树高至少为 2;B. 如果需要存 200W 条数据,则聚合索引树高至少为 3;C. 如果需要存 2000W 条数据,则聚合索引树高至少为 4;D. 如果需要存 2亿条数据,则聚合索引树高至少为 4;1.答案:一页16K非叶子节点,存储主键+指针(8+6=14),所以一页能存 16384/14 =1170条主键叶子节点,存储数据,每原创 2021-05-19 17:32:38 · 98 阅读 · 0 评论 -
数据库事务的实现原理
数据库ACID实现原理1.原子性:是指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做;如果事务中一个sql语句执行失败,则已执行的语句也必须回滚,数据库退回到事务前的状态。实现原理:undo logMySQL的日志有很多种,如二进制日志、错误日志、查询日志、慢查询日志等,此外InnoDB存储引擎还提供了两种事务日志:redo log(重做日志)和undo log(回滚日志)。其中redo log用于保证事务持久性;undo log则是事务原子性和隔离性实现的基础。undo log:转载 2021-02-24 18:30:07 · 215 阅读 · 0 评论 -
腾讯面试题,在读多写少的情况下,如何优化 MySQL 的数据查询方案
**面试官问:**假设你负责的某业务在双十一期间要搞运营活动,公司投入了大量的营销费用进行推广,此举会带来巨大的流量,如果你作为架构师或者技术负责人,要如何设计方案来优化 MySQL,从而支持这种突发流量的读多写少的场景?******旁白:**首先,我们要知道,对于大部分 OLTP 系统来说,读流量都是远远高于写流量的,可能达到几个数量级的差距,例如微信朋友圈,大部分人都是看的多,但可能一个月都发不了一条消息,同理,你上京东,更多的情况下是搜索并浏览商品,真正下单的比例会低很多。其次,使用 Re..原创 2021-02-24 14:01:42 · 254 阅读 · 0 评论 -
mysql联合索引最左匹配原则的底层实现原理
mysql联合索引最左匹配原则的底层实现原理要看懂,需要熟悉mysql b+ tree的数据结构b+tree的叶节点和叶子节点的排序特性是按照,从小到大,从左到右的这么一个规则,int直接比大小,uuid比较ASCII码,联合索引的排序规则拿a_b_c_idx为例,优先比较a列的大小,如果a列的大小相等,才会去看b列的大小,否则直接按照a列排序,以此类推.假如直接拿 b='xxx’作为条件在遍历索引树的时候,到页子节点,不能保证索引的顺序,还是要去全文遍历其他的叶子结点.....原创 2021-01-09 17:27:58 · 1158 阅读 · 1 评论 -
MySQL索引-B+树
索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义,如果我想要在 [1,2,3,4] 中找到 4 这个数据,直接对全数据检索也很快,没有必要费力气建索引再去查找。索引在 MySQL 数据库中分三类:B+ 树索引Hash 索引全文索引我们今天要介绍的是工作开发中最常接触到的 InnoDB 存储引擎中的 B+ 树索引。要介绍 B+ 树索引,就不得不提二叉查找树,平衡二叉树和 B 树这三种数据结构。转载 2021-01-09 16:31:02 · 45 阅读 · 0 评论 -
mysql的唯一索引区分大小写
敏感词字段同一人不能同时保存UI和ui的数据,最后查了下,发现mysql的唯一索引需要特殊设置才能区分大小写。。。具体操作: 字段设定里面有一个【二进制(Binary)】的选项,需要区分大小写的字段勾上就可以了。...原创 2020-10-24 10:49:57 · 846 阅读 · 0 评论 -
Mysql支持哪几种索引
Mysql支持哪几种索引从数据结构角度1、B+树索引(O(log(n))):关于B+树索引,可以参考 MySQL索引背后的数据结构及算法原理2、hash索引:a 仅仅能满足"=",“IN"和”<=>"查询,不能使用范围查询b 其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引c 只有Memory存储引擎显示支持hash索引3、FULLTEXT索引(现原创 2020-10-21 23:36:00 · 223 阅读 · 0 评论 -
Mybatis Update操作 返回值修改为受影响条数
https://www.jianshu.com/p/daccc3ad6867转载 2020-08-15 11:05:14 · 3514 阅读 · 0 评论 -
mysql where,group by,having,order by 编写顺序
select uid from risk_user_detail rwhere type = 2 GROUP BY uid,biz_id HAVING count(1)>=3 ORDER BY time desc原创 2020-07-28 10:52:00 · 118 阅读 · 0 评论 -
navicat创建mysql存储过程,创建测试数据
创建存储过程:create procedure test()begindeclare i int;set i=1;while i<=10 doinsert into admin(id,name) values(i,concat('aaa',i));set i=i+1;end while;end调用delimiter;call test();原创 2020-07-03 18:01:48 · 435 阅读 · 0 评论 -
mysql自动更新创建时间和更新时间
需求: 当新增记录的时候,mysql自动将系统的当前时间set到创建时间和更新时间这两个字段中。 当更新记录的时候,mysql只update更新时间字段的时间,而不修改创建时间字段对应的值。方案: 找到表中对应的创建时间和更新时间的字段,将其修改为下列代码所示。 创建时间字段`creat_time` timestamp NULL DEFAULT CUR...原创 2020-03-30 21:11:21 · 798 阅读 · 0 评论