随笔分类 -  数据库

摘要:count(1)与count(*)比较: 如果你的数据表没有主键,那么count(1)比count(*)快 如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快 如果你的表只有一个字段的话那count(*)就是最快的啦 count(*) count(1) 两者比较。主要还是 阅读全文
posted @ 2019-06-13 08:58 不会游泳的鱼~~ 阅读(1755) 评论(0) 推荐(0) 编辑
摘要:Join的实现算法有三种,分别是Nested Loops Join, Merge Join, Hash Join。 DB2、SQL Server和Oracle都是使用这三种方式,不过Oracle选择使用nested loop的条件跟SQL Server有点差别,内存管理机制跟SQL Server不一 阅读全文
posted @ 2019-06-12 16:35 不会游泳的鱼~~ 阅读(2645) 评论(0) 推荐(0) 编辑
摘要:自测试示例, 两表 都没有 建立索引 情况: start 1. sql 语句通过 nested loop 连接, 2. 默认 hash join //end 说明:最近找到了一个不错的国外的博客http://blogs.msdn.com/b/craigfr/,博主是Sql Server的开发人员,写 阅读全文
posted @ 2019-06-12 15:43 不会游泳的鱼~~ 阅读(1840) 评论(0) 推荐(0) 编辑
摘要:在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式。 之前打算在sqlplus中用执行计划的,但是格式看起来有点乱,就用Toad 做了3个截图。 从3张图里我们看到了几点信息: 1. CBO 使用的ALL_ROWS模式 Oracle Optimizer CBO RBO 阅读全文
posted @ 2019-06-11 17:01 不会游泳的鱼~~ 阅读(2096) 评论(0) 推荐(0) 编辑
摘要:参考 https://www.cnblogs.com/bowenbk/p/6371368.html 阅读全文
posted @ 2019-06-11 09:21 不会游泳的鱼~~ 阅读(239) 评论(0) 推荐(0) 编辑
摘要:hash join (Oracle里的哈希连接原理) 参考: https://www.cnblogs.com/shangyu/p/6055181.html 阅读全文
posted @ 2019-06-10 15:13 不会游泳的鱼~~ 阅读(909) 评论(0) 推荐(0) 编辑
摘要:Nested Loop,Hash Join,Merge Join介绍 Nested Loop:对于被连接的数据子集较小的情况,Nested Loop是个较好的选择。Nested Loop就是扫描一个表(外表),每读到一条记录,就根据Join字段上的索引去另一张表(内表)里面查找,若Join字段上没有 阅读全文
posted @ 2019-06-06 11:03 不会游泳的鱼~~ 阅读(6664) 评论(0) 推荐(2) 编辑
摘要:MINUS指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这些结果就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这些结果就被抛弃。 阅读全文
posted @ 2019-05-08 16:54 不会游泳的鱼~~ 阅读(1161) 评论(0) 推荐(0) 编辑
摘要:1.ASCII()函数 、char函数 可以看到,这里返回的值与ASCII函数的返回值正好相反. 2. 字符串逆序的函数REVERSE() REVERSE(s)将字符串s反转,返回的字符串的顺序和s的顺序相反。 eg: select REVERSE('abc'); 由结果可以看到,字符串“abc”经 阅读全文
posted @ 2019-04-29 16:31 不会游泳的鱼~~ 阅读(315) 评论(0) 推荐(0) 编辑
摘要:1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 建立索引好处 : 之前做的一个项目 , 一个查询10w多条的数据 ,需要20s ,后来加上索引,只需要5, 6s时间,差距简直了!! 2.应尽量避免在 where 子句中对字段进行 null 阅读全文
posted @ 2019-04-04 14:01 不会游泳的鱼~~ 阅读(164) 评论(0) 推荐(0) 编辑
摘要:先过滤条件然后再根据表连接 同时在表中建立相关查询字段的索引这样在大数据多表联合查询的情况下速度相当快 创建索引: create index ix_register_year ON dbo.selects(register_year) SELECT M.*,SS.SensorCode,SS.Sens 阅读全文
posted @ 2019-04-04 11:04 不会游泳的鱼~~ 阅读(4082) 评论(0) 推荐(0) 编辑
摘要:Kettle能做什么? 前言 : 需将db2中数据导入到mysql中,利用etl工具进行多表转换。以此为切入点,系统整理、学习kettle工具。 提醒: kettle是纯java编写,机器需要有jre环境。它允许管理来自不同数据库的数据,通过一个图形化的用户环境来描述你想要什么。 kettle中有两 阅读全文
posted @ 2019-04-02 10:28 不会游泳的鱼~~ 阅读(3441) 评论(0) 推荐(0) 编辑
摘要:partition by关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录, partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组。 partition by 与group 阅读全文
posted @ 2019-04-01 15:37 不会游泳的鱼~~ 阅读(3880) 评论(0) 推荐(0) 编辑
摘要:概念: 把left join左边的表的记录全部找出来。系统会先用表A和表B做个笛卡儿积,然后以表A为基表,去掉笛卡儿积中表A部分为NULL的记录。最后形成你的结果。 进行左连接时,就有涉及到主表、辅表,这时主表条件写在WHERE之后,辅表条件写在ON后面。 二、实例 1、表a结构和数据 table 阅读全文
posted @ 2019-03-28 16:02 不会游泳的鱼~~ 阅读(383) 评论(0) 推荐(0) 编辑
摘要:1、持久化数据库的缺点 1)存储在部署数据库的硬盘上 平时我们使用的关系型数据库有MySql,Oracle以及SqlServer等,通常通过数据驱动来链接数据库进行增删改查。 那么我们日常使用的数据库都存在哪里?我们以MySql为例。打开MySql所在的文件夹目录下的data文件夹,如图所示: 也就 阅读全文
posted @ 2019-03-20 15:39 不会游泳的鱼~~ 阅读(3245) 评论(0) 推荐(0) 编辑
摘要:1.查看执行时间和cpu占用时间 2.查看查询对I/0的操作情况 如果物理读取次数和预读次说比较多,可以使用索引进行优化。 如果你不想使用sql语句命令来查看这些内容,方法也是有的,哥教你更简单的。 查询 >>查询选项 >>高级 阅读全文
posted @ 2019-03-11 13:45 不会游泳的鱼~~ 阅读(191) 评论(0) 推荐(0) 编辑