![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 75
雪中鱼01
所谓专家,就是在一个很小的领域里把所有的错误都犯过了的人
展开
-
Sharding-JDBC分库分表学习笔记
什么是分库分表 分库分表就是为了解决由于数据量过大而导致数据库性能降低的问题,将原来独立的数据库拆分成若干数据库组成,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的。分库分表的方式...原创 2022-02-20 17:34:41 · 628 阅读 · 1 评论 -
面试套路问题总结6
1.数据库为什么使用B+树而不是B树B树和B+树的区别B树和B+树的区别主要有两点:在B树中,你可以将键和值存放在内部节点和叶子节点,但在B+树中,内部节点都是键,没有值。叶子节点同时存放键和值 B+树的叶子节点有一条链相连,而B树的叶子节点各自独立。使用B+树的好处1.由于B+树的内部节点只存放键,不存放值,因此,一次读取,可以在内存页中获取更多的键,有利于更快地缩小查找范围。2.B+树的叶节点由一条链相连,因此,当需要进行一次全数据遍历的时候,B+树只需要使用O(logN)时原创 2022-01-04 15:45:57 · 115 阅读 · 1 评论 -
mysql varchar能不能超过255个字节及产生的问题。
项目里突然varchar字段设置255也不够用了,记得规定不能超过255,今天查了一下,现总结如下:MySQL要求一个行定义长度不能超过 65535 bytes(所有字符串类型字段包括其字段名称占用空间都计算在内, text、blob等大字段类型除外)。所有如果一个表有很多varchar字段的时候,不应该把varchar设置的特别大,会影响后面的字段InnoDB存储引擎的表索引的前缀长度最长是767字节(bytes)(前缀长度适用于mysql5.6及以前,后续版本有变化)你如果需要建索引,就原创 2021-08-23 10:23:27 · 13524 阅读 · 5 评论 -
单表几百万数据怎么在线修改表结构?
项目背景 项目中因为我们产品设计的时候只要用户打开app,就根据用户设备号自动生成一个账号存储在表里,所以短期内我们项目的用户表就达到了几百万的数据量,并且随着项目的运行,每年在几百万的数据量增加。这是修改字段的数据类型这种操作,就变的很麻烦起来,目前主要有三种操作方式:方式一:使用mysql5.6+提供的在线修改功能 所谓的mysql自己提供的功能也就是mysql自己原生的语句,例如我们要修改原字段名称及类型。 mysql> ALTER TABLE table_name CHAN..原创 2021-08-16 15:36:01 · 717 阅读 · 0 评论 -
记录select for update mysql 死锁问题
背景项目要求某表单个列自增,但是where条件,并不是这个列所有的值都符合自增想用select for update mysql 锁表后,查询最大值自增,后发现有死锁问题,先记录一下。实例以下代码在可重复读隔离级别下执行,表中原来只有1~10的rank。假如A、B两个事务同时试图插入rank为21和22的rank;@Transactional public void createBannerDeadlock(Banner banner) { banner.r原创 2021-07-22 18:05:03 · 4445 阅读 · 2 评论 -
mysql 内部刨析及优化原理
优化sql1.加索引将数据地址丢到数据结构中key是值 value是地址二叉树到红黑树几十万上百万的数据 红黑树的高度会很高每个大节点有很多小索引data就是索引对应的磁盘文件的地址多叉平衡树B-tree 所有节点都有数据 b+树 只有叶子结点存有数据 剩下的是冗余数据根结点元素都加到内存里放的下一个节点在磁盘上的位置树的高度越小 查找效率越高Mysql底层对节点的大小限制为16kbdata可以是索引所在行的磁盘地址 也可以原创 2020-12-10 13:47:48 · 140 阅读 · 0 评论 -
MySQL简单面试题
1.数据库的三范式是什么?第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。第三范式:任何非主属性不依赖于其它非主属性。...原创 2020-05-04 09:28:25 · 234 阅读 · 0 评论 -
仿微博社交平台系统设计[二]--使用redis的hash数据结构实现帖子点赞功能
Redis Hset 命令语法redis Hset 命令基本语法如下:redis 127.0.0.1:6379> HSET KEY_NAME FIELD VALUE 实例实例redis 127.0.0.1:6379> HSET myhash field1 "foo"OKredis 127.0.0.1:6379> HGET myhash field1...原创 2020-03-01 14:13:34 · 813 阅读 · 0 评论 -
AWS RDS数据库关闭 报的错
aws线上服务器日志报的错,以为是网络原因,后来发现是数据库关闭了!因为数据库的配置太低,导致无法查询原创 2019-12-30 09:59:25 · 204 阅读 · 0 评论