![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库系列
Java全栈研发大联盟
好记性不如烂笔头,好好学
展开
-
尽量避免使用in,not in,替代方案是啥
IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢?原因:效率低t1表 和 t2表 都是150w条数据,600M的样子,都不算大。但是这样一句查询select * from t1 where phone not in (select phone from t2)十几分钟,检查了一下 phone在两个表都建了索引,字段类型也是一样的。原来 not in 是不能命中索引的。。。。改成 NOT EXISTS 之后查询 20s ,效率真的差好多。select * from t1wh原创 2022-04-10 11:04:56 · 677 阅读 · 0 评论 -
Oracle学习(一)
一、数据类型:表空间和数据文件的关系3.备份和恢复 (这个地方还有不明白的地方)原创 2018-10-24 15:25:14 · 629 阅读 · 0 评论 -
mysql并发控制
解释: Read uncommitted(未提交读),就是说一个线程修改了某一个数据之后,还没有提交之前,就被其他线程读到修改后的数据,这样一来肯定会产生问题Read committed(提交读),(大多数数据库系统的默认隔离级别)就是说A线程修改了结果以后,必须提交之后才能被其他线程读到新结果,在他还没有提交之前,数据还是旧的数据。但是这样有一个纰漏,就是A线程在访问修改该数据的时候,其他线...原创 2019-03-06 12:36:35 · 2295 阅读 · 0 评论 -
说说自己对于 MySQL 常见的两种存储引擎:MyISAM与 InnoDB的理解
小疑问: 上述中说Myisam缓存有表meta-data(行数等)是什么意思?以及innodb为什么更适合写密集型的表呢?为什么主从分离的情况下,经常选择myisam作为主库的存储引擎?按道理来说主库的写操作更多,应该是innodb才对啊...原创 2019-03-14 13:12:43 · 932 阅读 · 0 评论 -
mysql主从复制
1.复制原理过程1)主库把数据的更改记录到二进制日志中。2)备库将主库的二进制日志复制到自己的中继日志中。3)备库读取中继日志的事件并将其重放到备份数据之上。(解释: 就是将中继日志里面记录的相关事件在备库上执行一遍,保证跟主库的数据进行同步)...原创 2019-03-08 09:12:15 · 411 阅读 · 0 评论 -
一次非常有趣的sql优化经历
解释:上述的命令是explain extended小疑问:上述的type=all是什么意思啊?小疑问:为什么是循环70007*8次啊?小疑问:为什么加了索引之后,反倒时间变长了?原博客地址:https://www.javazhiyin.com/34024.html...转载 2019-03-17 17:51:24 · 631 阅读 · 2 评论 -
一千行 MySQL 学习笔记
腾出时间以后要根据下文链接整理这一千行MySQL学习笔记:https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247485025&idx=1&sn=1f4e19fc77af28f6795feff6ce7465b9&chksm=cea249aaf9d5c0bc89a421c0759d27af3f55797a5...原创 2019-03-18 19:56:58 · 584 阅读 · 0 评论 -
【SQL】update中使用case when
原创 2019-04-08 14:18:13 · 3659 阅读 · 0 评论 -
E-R图的学习
E-R图的学习第一题:设有商店和顾客两个实体,“商店”有属性:商店编号、商店名、地址、电话,“顾客”有属性:顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。试画出ER图,并注明属性和联系类型。第2题:假设每个学生选修若干门课程,且每个学生每选一门课只有一个成绩...原创 2019-05-15 11:39:11 · 7536 阅读 · 0 评论 -
Oracle学习(二)
1.oracle基本概念数据库:Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是Oracle就只有一个大数据库。(解释:Oracle就是一个大的数据库,跟MySQL不一样,它有且只有一个数据库)实例:一个Oracle实例(Oracle In...原创 2018-10-24 20:51:51 · 620 阅读 · 0 评论 -
数据库优化
小疑问: MyISAM的索引子节点是什么意思?MyISAM存储引擎的结构是怎么样的?原创 2019-03-05 19:16:15 · 436 阅读 · 0 评论 -
Mysql优化
索引什么是索引索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快...原创 2018-09-22 12:20:25 · 464 阅读 · 0 评论 -
Mysql优化(二)
linux里常用命令:service mysqld start 启动mysql数据库service iptables stop 关闭防火墙mysql主从复制服务器准备192.168.110.177 主服务器 master192.168.110.178 从服务器slave修改主(master)服务器vi /etc/my.cnf 新增以下内容server_id=177 ...原创 2018-09-22 17:38:18 · 509 阅读 · 0 评论 -
Mysql原理与实践总结
1.mysql常用语法1. 登录mysql(-h是指host,-u是指user,-p是指password)mysql -h 127.0.0.1 -u 用户名 -p 密码2 .创建表 语法还是比较复杂的,之前有腾讯面试官问这个,然后答不上来。3. join用于多表连接,查询的通常是两个表的字段。(解释:有待更新,哈哈)union用于组合同一种格式的多个select查询。(解释:有待更新...原创 2018-12-06 21:32:21 · 542 阅读 · 0 评论 -
MySQL两种存储引擎: MyISAM和InnoDB 简单总结
1.简单介绍MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完整性与并发违规处理机制,后来就逐渐取代MyISAM。...原创 2018-12-06 22:01:31 · 614 阅读 · 0 评论 -
数据库优化
原创 2019-01-03 16:43:09 · 411 阅读 · 0 评论 -
MySQL索引底层实现原理
1、 索引的本质MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找(linear search),这种复杂度为O(n)的算法在数据量很大时显然...原创 2019-01-13 17:18:08 · 5981 阅读 · 1 评论 -
图解MySQL 内连接、外连接、左连接、右连接、全连接……太多了
详情参考:https://blog.csdn.net/plg17/article/details/78758593原创 2019-02-25 13:24:07 · 572 阅读 · 0 评论 -
数据库性能优化有哪些方式
原创 2019-02-25 14:20:44 · 1521 阅读 · 0 评论 -
mysql四种隔离级别详解
现在来看看MySQL数据库为我们提供的四种隔离级别: 总结:在MySQL数据库中,支持上面四种隔离级别,默认的为Repeatable read (可重复读);而在Oracle数据库中,只支持Serializable (串行化)级别和Read committed (读已提交)这两种级别,其中默认的为Read committed级别。...原创 2018-11-02 12:29:52 · 805 阅读 · 0 评论