数据库
沐雨金鳞
大行不顾细谨
展开
-
Mysql不走索引的情况
in(2个及以上参数) 通配符:like '%abc' 或者 like‘%abc%’ 条件中带有表达式,比如where num/2=100 或者 substring(a,1,3)='ab'或者age+10=30 条件中带有不等于,where id !=2 或者 where id <> 2 is null not in 字符类型的字段与数字比较 /数字类型的字段与字符比较会用到索引 大量的or操作...原创 2020-09-18 20:45:50 · 563 阅读 · 0 评论 -
MVCC
一、什么是MVCC MVCC(Multiversion concurrency control)是一种多版本并发控制机制。二、MVCC是为了解决什么问题? 并发访问(读或写)数据库时,对正在事务内处理的数据做多版本的管理。以达到用来避免写操作的堵塞,从而引发读操作的并发问题。 大家都应该知道,锁机制可以控制并发操作,但是其系统开销较大,而MVCC可以在大多数情况下(快照读)代替行级锁,使用MVCC,能降低其系统开销。三、MVCC实现MVCC是通过保存数据在某个时间点...转载 2020-09-12 10:30:28 · 1273 阅读 · 0 评论 -
mysql知识点
一、基本概念1.主键、外键、超键、候选键超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。 候选键:是最小超键,即没有冗余元素的超键。 主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。 外键:在一个表中存在的另一个表的主键称此表的外键。2.为什么用自增列作为主键如果我们定义了主键(PRIMARY.原创 2020-09-12 10:04:55 · 1457 阅读 · 1 评论 -
mysql解决幻读问题
原创 2020-09-12 09:14:37 · 218 阅读 · 0 评论 -
为啥不能用uuid做MySQL的主键?
在 MySQL 中设计表的时候,MySQL 官方推荐不要使用 uuid 或者不连续不重复的雪花 id(long 形且唯一,单机递增),而是推荐连续自增的主键 id,官方的推荐是 auto_increment。一、对比: user_auto_key 自动增长的主键 user_uuid uuid 作为主键 user_random_key 随机 key 作为主键 在已有数据量为 130W 的时候...转载 2020-09-08 09:53:39 · 546 阅读 · 0 评论 -
Navicat的int类型长度默认为0代表什么意思?
int()括号中的数字并不是设置数据大小限制的 无论你设int(11)还是int(3)都可以支持32位的数字表示 显示宽度:比如你数据字段设计的是int(11),那么有个字段值是123,那么这个值在显示宽度上是3位,而设计的是显示的是11位,所以这时候,你如果在字段设计的时候,选择zerofill就可以发现,123变成了00000000123,也就是剩下的8位用0补足了 int长度默认0的意思是:默认显示宽度为11 int十进制:-2^31=-2147483648到2^31-1=21474836..原创 2020-07-01 11:13:48 · 15119 阅读 · 2 评论 -
MySQL账号密码忘记解决方法(windows环境下亲测有效)
(windows环境下)MySQL账号或者密码忘记解决步骤 本篇文章的主体内容摘录于另一篇博主的内容,在此对原博主表示感谢。 原博主文章链接: http://www.cnblogs.com/jifeng/archive/2011/06/23/2088299.html#3390741 对于原博主一带而过的内容做了一些补充的陈述,希望能更好帮助大家。(本人在windows上使用成功,估计Lin...转载 2018-04-16 20:16:52 · 1246 阅读 · 0 评论 -
3NF分解(无损+4NF)
3NF 1、首先化为最小函数依赖 2、a、找依赖集中没有的属性 归为一个属性组 b、找左边部分相同的,归为一个依赖集 c、将这些依赖集全部转换为属性集 d、去掉被包含依赖集 e、若有a,则并上 成为3NF3NF+无损连接 3NF分解 + 并上候选码,判断去掉被包含 成为3NF+无损连接4NT 先找候选码,按照候选码,将不是的一个一个拉出来 成为4NF原创 2017-12-31 15:23:26 · 3074 阅读 · 0 评论 -
SQL-EXIST-查询选修了全部课程的学生姓名
SELECT Sname FROM Student WHERE NOT EXISTS (SELECT * FROM Course WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno=Student.Sno AND Cno=Course.Cno) ); 先取外层第一条数据 最内层数据限制始终为最外层第一条数据的值 最内层开始在原创 2017-08-27 09:35:32 · 5182 阅读 · 3 评论 -
文章标题关系数据库标准语言SQL-2
连接查询:涉及多个表的查询 连接谓词:用来连接两个表的条件等值查询: select Student.*, SC.* from Student,SC where Student.Sno = SC.Sno 嵌套查询: select Sname from Student where Sno in(select Sno from SC where原创 2017-08-12 12:12:04 · 367 阅读 · 0 评论 -
关系数据库标准语言SQL-1
数据定义:CREATE、DROP、ALTER 数据查询:SELECT 数据操纵:INSERT、UPDATE、DELETE 数据控制:GRANT、REVOKE主码约束: PRIMARY KEY 唯一性约束: UNIQUE 非空值约束: NOT NULL primary key = unique + not null 创建表 建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课原创 2017-08-12 11:38:05 · 419 阅读 · 0 评论