
DB
转身雪人
随心所欲,认真生活
展开
-
【DATABASE】Left Join /Right Join/Inner Join
几种多表关联方式Left JoinRight JoinInner Join几种多表关联方式Left Join左连接: 以左表的数据为主,用某一个字段去关联右表。左表的数据会原封不动,右表中有符合左表数据的关联出来,没有则为空。在Sql中的具体表现为select t1.id, t2.name from t1 left join t2 on t1.id = t2.id这里 left joi原创 2017-09-07 10:10:27 · 314 阅读 · 0 评论 -
【SQLServer】maven引用的时候遇到的坑
结论: 不要尽信博客,大多数博客都是复制粘贴瞎几把扯淡。很多博客都让你在maven中添加如下的依赖 <!-- mssqlserver --> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>s...原创 2019-04-08 13:36:38 · 1420 阅读 · 1 评论 -
【数据库基础】Foreign Key的使用及其优缺点
Foreign Key(外键)是数据库的一个很重要的概念。当两张表存在关联字段的时候,利用外键可以保证主表和从表的一致性和完整性。但是由于外键是Constraint,肯定会对表的新增删除修改产生性能的影响,所以到底使不使用,什么时候使用,该怎么用需要慎重考虑。 使用外键的优缺点如何建立外键假设我们有张主表user表,表结构如下 我们希望以id这个字段作为别的表的外...原创 2018-03-27 20:08:21 · 31423 阅读 · 4 评论 -
【数据库基础】联合索引是什么?为什么要用它?用它时要注意什么?
联合索引是什么对多个字段同时建立的索引(有顺序,ABC,ACB是完全不同的两种联合索引。)为什么要用以联合索引(a,b,c)为例建立这样的索引相当于建立了索引a、ab、abc三个索引。一个索引顶三个索引当然是好事,毕竟每多一个索引,都会增加写操作的开销和磁盘空间的开销。覆盖(动词)索引。同样的有联合索引(a,b,c),如果有如下的sql: select a,b,c from...原创 2018-03-26 19:13:48 · 20574 阅读 · 3 评论 -
【数据库基础】MySQL for update初识
在面试中被问到过mysql的悲观锁乐观锁。当时不懂,看了一篇博客之后若有所思 http://blog.youkuaiyun.com/xz0125pr/article/details/51698507#reply然后自己在mac上用两个terminal测试了一把。完全原创几种情况吧。前提表引擎为InnoDB。 MySQL select…for update的Row Lock与T...原创 2018-03-05 13:04:51 · 239 阅读 · 0 评论 -
MVCC (Multiversion Concurrency Control) 多并发版本控制
不同事物在同一时刻看到的数据可能是不同的(事务之间的隔离性),同一事物在不同时刻看到的数据一定是相同的(repeatable read)。我们首先会通过数据库的引擎保证这一点。上面那句话我说的,不保证正确哈哈哈MVCC并没有统一的标准,各个数据库实现均采用不同方式来实现MVCC,我们这里针对的是MySQL InnoDB的实现方式:原理:mvcc提供基于某个时间的快照,使...原创 2018-03-15 20:40:27 · 616 阅读 · 0 评论 -
【数据库基础】MySQL索引初识
简介弊端种类普通索引唯一索引全文索引 索引的删除查看索引索引失效like查询字段计算NOT IN操作字符串忘加引号常见问题主键和唯一索引简介索引(INDEX或KEY)是我们引用的为了高效查询的一种方式,在需要作为where条件的字段上加索引,避免了从头开始全表扫描和过分的磁盘IO。可以将索引理解为目录(跳跃式的查找),底层...原创 2018-02-16 16:13:55 · 1172 阅读 · 1 评论 -
【数据库基础】enum的使用
偶然发现的小技巧。。就是 我想让表里的某个字段,非0即1。类似状态一样,不存在第三种情况。那么这样如何定义该字段呢? 字段名 enum('0','1');看,改完以后Type那里是 enum('0','1')我们试着插入一条数据2,看看会出现什么情况(报错,或是?) 结果插入了状态1。结论使用这种enum不能够起到严格的校验,但可以...原创 2018-02-14 18:01:59 · 8449 阅读 · 0 评论 -
【数据库基础】MySQL从建库到删库跑路简要笔记(逃。。
标题纯属开玩笑,这里主要是为了系统的梳理一下MySQL整个的操作流程。不会往深里讲。图形化界面也在用着,不过还是系统的补一下常用的指令操作。 针对环境 Ver 8.42 Distrib 5.7.21, for macos10.13 on x86_64安装以及初始化MySQL建库建表啥的插入查询删库跳转区deletetruncate ...原创 2018-02-04 11:21:11 · 3034 阅读 · 0 评论 -
【数据库基础】MySQL引擎对比
如何选择合适的存储引擎? 1. 是否需要支持事务; 2. 是否需要使用热备; 3. 崩溃恢复:能否接受崩溃; 4. 是否需要外键支持; …根据业务场景来选择合适的引擎。InnoDBMyISAMInnoDB和MyISAMInnoDBMySQL 5.5 以后的默认存储引擎就是InnoDB。Innodb引擎提供了对数据库ACID事务的支持,并且实现原创 2018-02-05 11:46:23 · 313 阅读 · 0 评论 -
Mysql net start mysql启动,提示发生系统错误 5 拒绝访问
为什么会出现这个问题呢?经过一番思考找到原因了,是因为当前用户的操作权限太低了,出了问题出错问题截屏如下:解决问题方法如下:在dos下运行net start mysql 不能启动mysql!提示发生系统错误 5;拒绝访问!切换到管理员模式就可以启动了。所以我们要以管理员身份来运行cmd程序来启动mysql。那么如何用管理员身份来运行cmd程序呢?1.在开始菜单的搜索框张收入cm转载 2018-01-22 13:49:07 · 425 阅读 · 0 评论 -
mysql的水平拆分和垂直拆分
原本搜一下该方面的内容,结果发现了全网一大半都是一个字不差的复制粘贴。。呵呵,甚至概念模糊不清的地方都一并抄下来了写个转载不丢人,真的。 由于此篇文章在细节上不能使我满意,所以找了另一篇原文链接: mysql的水平拆分和垂直拆分不过这篇文章也有部分不赞同的地方,暂时不做展开。。水平分割:例:QQ的登录表。假设QQ的用户有100亿,如果只有一张表,每个用户登录的时候数据库都要...转载 2019-06-13 17:30:06 · 723 阅读 · 0 评论