首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个开发需求解决方案 & Oracle临时介绍

一、开发需求 最近有一个开发需求,大致需要先使用主表,或主表和几张子表关联查询出ID(主键)及一些主表字段,然后再用这些ID查找最多10张中对应记录,主表记录数大约2000万,每张子表记录数均为百万以上...两做join,又由于主子表之间是一关系,很可能造成结果集因为笛卡尔积变得很大,应用处理出现内存溢出错误。...2.将(1)结果集存入一张临时(temporary table,不是应用自行处理普通),相当于临时结果集,每次子表都是和这张临时做两关联查询,这么做可以避免因为IN值太多导致低效检索,同时由于两关联字段均为主键或外键...二、临时介绍和实验 需要缓存中间结果集场景,可以考虑使用临时,因为临时数据是session级别私有,每个session仅能看见和修改自己数据,在session结束时候,中数据会被自动删除...可以对临时创建索引、视图或触发器。 ON COMMIT子句两种参数区别如下: ? 临时数据默认存储于默认临时空间,可以创建过程中指定其他临时空间。

93120
您找到你想要的搜索结果了吗?
是的
没有找到

②【MySQL操作】 数据库创建、查询修改、删除

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习路上摸爬滚打,记录学习过程~ 个人主页:.29.博客 学习社区:进去逛一逛~ 数据库创建、查询、...DDL - 操作 DDL-操作: 查询信息 ①查询当前数据库所有 SHOW TABLES; ②查询结构 DESC 名; ③查询指定建表语句 SHOW CREATE TABLE 名; 创建操作...字段n 字段n类型 [COMMENT 字段n注释] )[COMMENT 注释]; -- 演示: -- 创建tb_user -- 注释内容使用一英文单引号括起来'' -- 整型用int表示 --...; /* 案例:设计一张员工需求如下 1.编号(纯数字) 2.员工工号(字符串,长度不超过10) 3.员工姓名(字符串,长度不超过10) 4.性别(男/女。...旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束]; -- 案例 -- 将tb_empnickname字段修改为username,类型varchar(30) ALTER TABLE

45550

INSERT...SELECT语句查询加锁吗

前言: insert into t2 select * from t1; 这条语句会对查询 t1 加锁吗?不要轻易下结论。...GreatSQL锁进行研究之前,首先要确认一下事务隔离级别,不同事务隔离级别,锁表现是不一样。...SELECT 执行期间,另一个事务修改了被查询数据,那么 INSERT ... SELECT 可能会读取到不同数据,导致插入数据不一致。...SELECT 语句在执行期间读取到数据是一致,并且不会被其他事务修改,从而维护了事务隔离性和一致性。尽管 MVCC 可以在大多数情况下提供高效数据读取和写入,但它并不能完全替代锁机制。...结论: INSERT...SELECT语句是否查询加锁跟事务隔离级别有关,REPEATABLE-READ隔离级别下加共享读锁,此共享读锁属于Nextkey lock,会影响其他事务查询DML操作

5210

谈谈SQL查询中回性能影响

定位到如下 SQL: select id from user where name like ‘%foobar%’ order by created_at limit 10; 业务需要,LIKE 时候必须使用模糊查询...,我当然知道这会导致全扫描,不过速度确实太慢了,直观感受,全扫描不至于这么慢!...要想搞清楚缘由,你需要理解本例中 SQL 查询处理流程:当使用 limit 时,因为只是返回几条数据,所以优化器觉得采用一个满足 order by 索引比较划算;当不使用 limit 时,因为要返回所有满足条件数据...不过就算知道这些还是不足以解释为什么在本例中全扫描反而快,实际上这是因为当使用索引时候,除非使用了 covering index,否则一旦索引定位到数据地址后,这里会有一个「回操作,形象一点来说...,就是返回原始中对应行数据,以便引擎进行再次过滤(比如本例中 like 运算),一旦回操作过于频繁,那么性能无疑将急剧下降,全扫描没有这个问题,因为它就没用索引,所以不存在所谓「回」操作。

2.3K20

关于Prestolzo压缩查询使用记录

关于Prestolzo压缩查询使用记录 0.写在前面 1.正文 0.提前说明 1.查询ads层 2.查询dwd|dws|dwt层 3.查询ods层 ---- ---- 0.写在前面 实验背景...ads层 select * from ads_visit_stats; ❝ads层查询没有任何问题。...❞ 2.查询dwd|dws|dwt层 ❝「Presto不支持parquet列式存储加lzo压缩查询」 ❞ Presto-Client查询语句: select * from dwd_start_log...* from ods_log; 美团技术团队文章关于「Presto二次开发和BUG修复」提到:Presto不支持查询lzo压缩数据,需要修改hadoop-lzo代码 ❝https://tech.meituan.com...解决方案 对于这个问题,需要修改hadoop-lzo代码,美团解决方案开源在Github上: ❝https://github.com/MTDATA/presto/commits/mt-0.60 ❞

1.1K30

SQL Server分区(二):添加、查询修改分区数据

本章我们来看看在分区中如何添加、查询修改数据。 正文开始 在创建完分区后,可以向分区中直接插入数据,而不用去管它这些数据放在哪个物理上数据中。我们在创建好分区中插入几条数据: ?...从以上代码中可以看出,我们一共在数据中插入了13条数据,其中第1至3条数据是插入到第1个物理分区;第4、5条数据是插入到第2个物理分区;第6至8条数据是插入到第3个物理分区;第9至11...当然,在查询数据时,也可以不用理会数据到底是存放在哪个物理上数据中。如使用以下SQL语句进行查询: select * from Sale 查询结果如下图所示: ?...除了在插入数据时程序员不需要去考虑分区物理情况之外,就是连修改数据也不需要考虑。...分区编号,count(id) as 记录数 from Sale group by $PARTITION.partfunSale(SaleTime) --修改编号为1记录,将时间改为2019年1月

6.9K20

【MySQL】DDL操作详解:创建&查询修改&删除(记得3点加上连接)

.查询当前数据库所有 SHOW TAEES; 我们可以看到新建数据库种没有结构 而我们第一模块创建就有 2.查询结构 DESC名; 查看哪些字段和字段类型 3.查询指定建表语句...SHOW CREATE TABLE名; 查看表是通过那些语句创建 三.根据需求创建(设计合理数据类型、长度) DDL基本数据结构博客传送门在下方 传送门 设计一张员工信息,要求如下...案例: 为emp增加一个新字段”昵称”为nickname,类型为varchar(20) 2.修改字段数据类型 ALTERTABLE 名 MODIFY字段名 新数据类型(长度); 3.修改字段名...(30) 4.删除中字段 ALTER TABLE名 DROP 字段名; 案例: 将emp字段username删除 5.修改修改名 ALTER TABLE 名 RENAME...TO 新名; 案例: 将emp修改为employee 五.DDL-操作-删除 语句总览 如下所示 1.删除 加上IF EXISTS,不存在也不报错 DROP TABLE[IF

23910

多场景下exists子查询比join连查询快这么多?

现在有一个需求是根据商品名称或skuId模糊匹配查询包含该sku送货单列表。...首次优化 查询语句中,tenant_id、store_id和create_time等字段限定只对sku进行了限制,而没有送货单做限制,导致只有sku使用了索引,而送货单没能走索引。...: 二次优化 这次优化目标就是去掉临时以及filesort。...其实仔细分析我们sql语句,导致使用临时和filesort原因是我们使用了group by,因为我们使用了join查询,为了避免重复,我们必须要使用group by或distinct来去重。...实际上,create_time和主键id是等效,所以可以使用order by id来替换order by create_time,进一步利用唯一索引自然顺序来进一步提升查询性能。

1.1K30

MySQL 8.0.11 (2018-04-19, General Availability)

索引进行隐藏时,它不会被查询优化器所使用。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库影响。...该项功能消除独立NoSQL文档数据库需求,而 MySQL 文档存储也为schema-less模式JSON文档提供了多文档事务支持和完整ACID合规性。...13、安全性:OpenSSL改进、新默认身份验证、SQL 角色、密码强度、授权。 14、临时改进:在5.7以来,所有内部临时成为"ibtmp1"共享空间。...此外临时元数据也存储在内存中。在MySQL8.0中,MEMORY存储引擎也将被TempTable存储引擎替换为内部临时默认存储引擎。...16、直方图:在MySQL 8.0中添加了直方图概念,用于索引统计和分析 17、Innodb加强:数据字典优化,参数优化 18:复制优化:在MySQL8.0中,对于复制改进,默认参数修改组复制

1.2K30

MySQL查询优化

4、查询结果进行排序。...覆盖索引并不是像主键索引、唯一索引一样真实存在,它只是索引应用某些特定场景一种定义【另一种理解:查询列是索引列,因此列被索引覆盖】。...:   精简查询,连接消除,等效转换,去除多余对象连接   例如:主键/唯一键作为连接条件,且中间表列只作为等值条件,可以去掉中间连接 10、其他查询优化   1、以下将会造成放弃索引查询,采用全文扫描...【以下是摘抄于半夜乱弹琴博文http://www.cnblogs.com/lingiu/p/3414134.html,本人没进行相应测试】   4、尽量使用变量来代替临时   5、避免频繁创建和删除临时...,减少系统资源消耗   6、如果使用到了临时,在存储过程最后务必将所有的临时表显式删除,先 truncate table ,然后 drop table ,这样可以避免系统较长时间锁定

2K30

数据库(结构)设计技巧及注意事项

6、  增加备注字段,虽然我们考虑了很多用户需要输入信息需求,但是无论何时我们都不可能考虑全,因此可以定义一个备注字段,允许用户将其它信息填写在这里。无论设计再神奇,那么还是加一个备注字段。...但是,满足第三范式数据库设计,往往不是 最好设计。为了提高数据库运行效率,常常需要降低范式标准:适当增加冗余,达到空间换时间 目的。 17、若两个实体之间存在多关系,则应消除这种关系。...消除办法是,在两者之间增加第三个实 体。这样,原来一个多关系,现在变为两个一关系。要将原来两个实体属性合理地分配 到三个实体中去。...20、中间是存放统计数据,它是为数据仓库、输出报表或查询结果而设计,有时它没有主键与 外键(数据仓库除外)。临时是程序员个人设计,存放临时记录,为个人所用。...(3) 发现某个记录太多,例如超过一千万条,则要对该进行水平分割。水平分割做法是, 主键PK某个值为界线,将该记录水平分割为两个

6.6K32

HAWQ技术解析(十七) —— 最佳实践

1——数据库状态监控活动 (2)硬件和操作系统监控 活动 过程 改进措施 维护需求或硬件系统故障底层平台检查。...如果你要通过地区访问记录,考虑一个列表分区设计,地区划分。 是否需要维护一个数据仓库历史数据窗口?分区设计考虑另一个问题是组织维护历史数据业务需求。...扫描每个分区查询比非分区更慢,因此当只有很少查询满足分区消除时,要避免进行分区。检查查询解释计划确认分区被消除。更多分区消除信息参见Query Profiling。        ...否则,虚拟段数量依赖于查询成本:查询哈希分布行为与查询随机分布类似。 查询类型。引用用户定义函数或外部查询,其资源成本估算是困难。...查询优化器是否选择了最好连接顺序?当查询连接多个时,确保优化器选择最具选择性连接顺序。消除最大行数连接应该在计划中更早处理,使得计划树向上移动行更少。

1.4K70

服务器 数据库设计技巧--1

要善于识别与正确处理多关系 若两个实体之间存在多关系,则应消除这种关系。消除办法是,在两者之间增加第三个实体。这样,原来一个多关系,现在变为两个一关系。...E--R图没有标准答案 信息系统E--R图没有标准答案,因为它设计与画法不是惟一,只要它覆盖了系统需求业务范围和功能内容,就是可行。反之要修改E--R图。...中间、报表和临时 中间是存放统计数据,它是为数据仓库、输出报表或查询结果而设计,有时它没有主键与外键(数据仓库除外)。临时是程序员个人设计,存放临时记录,为个人所用。...(3) 发现某个记录太多,例如超过一千万条,则要对该进行水平分割。水平分割做法是,主键PK某个值为界线,将该记录水平分割为两个。...消除传递依赖,达到第三范式应该是系统中大部分要求,除非一些特殊作用

1.9K40

下次面试官再问ClickHouse优化手段就知道怎么答了!

OLAP作为一个我们重度依赖组件,它优化也是我们在实际工作和面试中经常遇到问题。 数据模型和结构优化 规范化与反规范化权衡 规范化是通过消除数据冗余来提高数据一致性过程。...合理使用物化视图和聚合 物化视图是预先计算并存储查询结果。使用物化视图可以加速查询,但会增加存储空间和维护成本。聚合是通过聚合函数原始进行汇总。使用聚合可以加速聚合查询,减少计算量。...在实际应用中,需要根据查询需求来决定是否使用物化视图和聚合。 使用列式存储和数据压缩技术 列式存储是按列存储数据,提高查询性能。ClickHouse是一款列式存储数据库,特别适合分析型查询。...为经常用于查询条件字段创建索引。 2. 为大创建分区,提高查询性能。 3. 根据业务需求和数据访问模式,合理选择索引类型和分区策略。 4. 定期审查索引和分区策略,根据数据变化进行调整。...- 对于复杂查询,可以将查询拆分为多个简单查询,使用临时或物化视图存储中间结果,降低查询复杂度。

64430

数据库运行维护与优化

检测并改善数据库性能 数据库重组与重构 PS:重组不修改数据库原有的设计逻辑结构与物理结构 重构部分修改模式和内模式 二、运行状态监控与分析 数据库监控分析...作用:减少连接操作、避免聚合函数 2、增加冗余列 在多个中增加相同列,避免连接操作 3、重新组 减少连接提高效率 4、分割 对表进行垂直分割后,如果需要查询全部数据,需要使用join...操作 对表进行水平分割后,查询所有数据需要使用Union操作 5、汇总表 降低I/O访问次数、及CPU资源 存储过程优化 (1)物化视图(索引视图) (2)聚集:减少I/O次数 查询优化 (...:范围查询 (4)使用散列还是树索引:散列用等值查询 使用索引原则 频繁使用,值域大,排序列比较多=>复合索引 索引调优(动态地评估需求) (2)避免或简化排序 (3)消除大型数据顺序存取...优化方法:对连接列进行索引或使用并集 (4)避免复杂正则表达式 原因:消耗较多CPU 资源进行字符串匹配 (5)使用临时加速查询一个子集进行排序并创建临时

1.5K20

解释SQL查询计划

在这种情况下,作者可以利用查询计划修改原始查询,为查询编译器提供更多信息或更多指导。 阅读计划 “ShowPlan”结果是一系列关于访问和显示查询中指定数据处理语句。...这是本地数组中临时”区域。它用于保存临时结果用于各种目的,如排序。就像映射一样,临时文件有一个或多个下标,可能还有节点数据。 使用 一些临时文件包含处理单个数据。...在这种情况下,可以将构建临时文件视为数据进行预处理。在读取这样临时文件之后,可以访问源主映射,也可以不访问源主映射。在其他情况下,临时文件可能包含处理多个结果。...发送给处理查询 对于通过ODBC或JDBC网关连接链接外部,该计划显示发送到远程SQL gateway connection查询文本,从远程检索所请求数据。...此外,分析计划可能表明类定义某些更改可能导致更有效计划,例如: 添加一个索引 在某些情况下(尽管不总是),使用一个临时文件进行预处理可能意味着向原始添加一个与临时文件具有相同或类似结构索引将消除构建临时文件需要

89120

采用左右值编码来存储无限分级树形结构数据库设计

该设计方案优点是:只用一条查询语句即可得到某个根节点及其所有子孙节点先序遍历。由于消除了递归,在数据记录量较大时,可以大大提高列表效率。...在进行类别树遍历时,由于只需进行2次查询消除了递归,再加上查询条件都为数字比较,效率极高,类别树记录条目越多,执行效率越高。...不用临时来处理也行,但是update语句顺序一定要考虑周详。否则,一旦出现bug,整个类别破坏是惊人,强烈推荐在做上述工作前类别进行完整备份。   ...可以进行先序列表,添加,修改,删除,同层平移等常规操作,基本满足需求。...而且,采用该方案编写相关存储过程,新增,删除,同层平移节点需要对整个树进行查询修改,由此导致代码复杂度,耦合度较高,修改维护风险较高。

2.7K10
领券