学习
实践
活动
工具
TVP
写文章

CTAS、Nologging以及数据库运行模式

结论: 显然ctas的Nologging在archivelog模式下才会不记录redo,而在Noarchivelog模式下会产生同样多的redo 在归档模式下的CTAS nologging应该等价于非归档模式下 ctas + insert append

51240

MySQL Cases-MySQL CTAS的变化create table as

ctas报错很常见,当前数据库为RDS上的版本为8.0.18 image.png 但是再另外一个环境执行却没有任何问题,GTID模式和强一致性也开启了,那么是为什么? 从MySQL 8.0.21开始,如果存储引擎(InnoDB)支持原子DDL,create table ... select(CTAS)在基于row模式复制时,CTAS语句作为一个事务记录在binlog中 但是随着原子DDL支持的引入,CTAS语句现在对于row模式的复制是安全的,并且允许与基于GTID的复制一起使用。 如果存储引擎同时支持原子DDL和外键约束,当使用row模式复制时选择语句,那么CTAS中语句中不允许创建外键。表创建完成后续可以再使用alter table方式添加外键约束。 CTAS创建表作为一个原子操作,插入数据时在表上保留元数据锁,这会在操作期间阻止对表的并发访问,后面找时间我们一起看按下,CTAS主要是什么级别的锁。

44531
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

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

    ctas方式建表时的redo和undo

    1,ctas与create table后insert语句产生的redo是差不多的。 2,ctas生成的undo远远小于create table and insert方式。 3,ctas生成的undo与create table后insert /*+ append */差不多。 4,ctas nologging方法生成的log远远小于其它的方式。 下面是详细的测试步骤 1. ctas方式生成的undo与redo ? 2,ctas nologging方式生成的undo与redo ?

    64950

    利用mybatis-generator自动生成代码

    "***" 17 password="***"/> 18 19 <javaModelGenerator targetPackage="<em>ctas</em>.test.entity " 20 targetProject="D:/yangjm/Code/<em>CTAS</em>/JAVAEE/<em>CTAS</em>2CCSP/src/main/java"> trimStrings" value="true"/> 23 </javaModelGenerator> 24 25 <sqlMapGenerator targetPackage="<em>ctas</em>.test.entity.xml " 26 targetProject="D:/yangjm/Code/<em>CTAS</em>/JAVAEE/<em>CTAS</em>2CCSP/src/main/java"> 27 " 31 targetProject="D:/yangjm/Code/CTAS/JAVAEE/CTAS2CCSP/src/main/java"

    1.4K50

    (超长文)Hive Sql基本操作

    load data local inpath "/home/light/mysql/student.txt" into table student; 使用CTAS创建表: create table student_ctas as select * from student where id < 95012; MySQL使用CTAS创建表 load data local inpath得变为load data local ; OK student_ctas.id student_ctas.name student_ctas.sex student_ctas.agestudent_ctas.department 创建表在MySQL中也是适用,如下所示: mysql> create table student_ctas as select * from student where id<95012; Query 查看以student开头的所有表: hive (t1)> show tables like 'student*'; OK tab_name student student_bck student_ctas

    1.6K41

    Oracle 通过脚本一键生成按月分区表

    经加工和提炼,将以上脚本修改为契合自己使用的脚本: 用于生成CTAS完整分区表建表语句:ctas_par.prc 用于CTAS直接转换为分区表:par_tab_deal.pkg 点我跳转文末 可以获取 的使用方式: --直接执行输出即可 BEGIN ctas_par(p_tab => 't1', p_part_colum => 'created_date', 3 执行procedure 执行procedure生成CTAS创建分区表语句: 表名:T1 分区键:CREATED_DATE 建立分区月数:24 分区所在表空间:USERS alter session 24, p_tablespace => 'USERS'); END; 执行脚本如下: --分区表获取分区列最小记录日期:2015-01-01 00:00:00 --分区表ctas 确保当前表T1已经rename为T1_01,执行CTAS创建分区表: 查看分区表结构: 注意: 由于CTAS不会继承 注释,默认值,因此需要手动比对是否缺失。

    39020

    Oracle普通表按月转分区表,通过PLSQL包一键生成分区表

    经加工和提炼,将以上脚本修改为契合自己使用的脚本: 用于生成CTAS完整分区表建表语句:ctas_par.prc 用于CTAS直接转换为分区表:par_tab_deal.pkg 注意:脚本下载地址见文末 的使用方式: --直接执行输出即可 BEGIN ctas_par(p_tab => 't1', p_part_colum => 'created_date', 3 执行procedure 执行procedure生成CTAS创建分区表语句: 表名:T1 分区键:CREATED_DATE 建立分区月数:24 分区所在表空间:USERS alter session 执行脚本如下: --分区表获取分区列最小记录日期:2015-01-01 00:00:00 --分区表ctas创建的完整语句如下: create table T1 partition BY RANGE( 确保当前表T1已经rename为T1_01,执行CTAS创建分区表: ? 查看分区表结构: ? 注意:由于CTAS不会继承 注释,默认值,因此需要手动比对是否缺失。

    58510

    maven: 打包可运行的jar包(java application)及依赖项处理

    classpath</argument> 16 <classpath> 17 </classpath> 18 <argument>ctas.importer.reader.app.Program Build-Jdk: 1.7.0_09 4 Class-Path: lib/DataEntity-1.0.jar ... 5 Created-By: Apache Maven 3.2.3 6 Main-Class: ctas.importer.reader.app.Program 4 <configuration> 5 <archive> 6 <manifest> 7 <mainClass>ctas.importer.reader.app.Program

    55790

    mybatis 使用经验小结

    as recId from dual 4 </selectKey> 5 insert into CTAS_SHARK_FLT (<include refid="Base_Column_List 6 </tx:advice> 7 8 <aop:config> 9 <aop:pointcut id="pc" expression="execution(* <em>ctas</em>.service *(..))"/> 10 <aop:advisor pointcut-ref="pc" advice-ref="txAdvice"/> 11 </aop:config> 这样,ctas.service ,不需要spring代为管理,上面的配置要改成: 1 <aop:config> 2 <aop:pointcut id="pc" expression="execution(* <em>ctas</em>.service execution(* <em>ctas</em>.service.*.self*(..)))"/> 3 <aop:advisor pointcut-ref="pc" advice-ref="txAdvice

    41960

    没有窗口函数,你能很快做出这道MySQL面试题吗?

    用户, dates 月份, sum(v_num) 当月访问次数 from mianshi1 group by id,dates 结果如下 第二步:为了清楚讲解这个面试题,我们使用CTAS join zhongjian1 b on a.用户 = b.用户 where a.月份 <= b.月份 group by b.用户,b.月份; 结果如下 第四步:为了清楚讲解这个面试题,我们再次使用CTAS

    7320

    Oracle Data Redaction数据加密

    必须加一层select,无论对于使用的用户是否是加密可见; 2.加密的结果优先级高于函数,比如distinct; 3.对于group by不影响结果的准确性,与未加密结果一致; 4.加密后的表无法进行CTAS 对于加密后的表无法进行CTAS操作,其实逻辑上是对的,既然加密了,如果能ctas成功那么加密就是去了意义 ? 同时,有了该权限后加密也是去了意义。 ? ? 附录 ?

    77650

    没有窗口函数,你能很快做出这道MySQL面试题吗?

    第二步:为了清楚讲解这个面试题,我们使用CTAS保存这个中间表 create table zhongjian1 as select id 用户, dates 月份, sum 第四步:为了清楚讲解这个面试题,我们再次使用CTAS保存这个中间表 create table zhongjian2 as select b.用户 用户, b.月份 月份,

    25210

    根据肿瘤突变信息计算一系列指标

    intrinsic immune escape mechanisms of TNBC,这个过程应用了很多突变位点的量化指标,包括: neoantigens, cancer testis antigens (CTAs Calculation of cancer testis antigens (CTA) The CTDatabase (http://www.cta.lncc.br/) was first queried for CTAs the tumor site than the paired normal tissue in at least one patient were selected as TNBC-specific CTAs In all, a total of 177 CTAs were included in our study.

    64410

    0187eaia data access error_文档错误码700015

    18051 CREATE_18051_CTAS_LOAD_DATA_TIMEOUT CTAS_LOAD_DATA_TIMEOUT schema=xxx table=xxx CTAS执行的LOAD DATA 18052 CREATE_18052_CTAS_META_CHECK_THREAD_ERROR CTAS_META_CHECK_THREAD_ERROR message=xxx CTAS执行的元数据校验阶段超时 18053 CREATE_18053_CTAS_LOAD_DATA_FAILED CTAS_LOAD_DATA_FAILED schema=xxx table=xxx jobState=xxx CTAS 18055 CREATE_18055_CTAS_INSERT_THREAD_ERROR CTAS_INSERT_THREAD_ERROR message=xxx CTAS执行的INSERT阶段失败,请重试 18062 CREATE_18062_CTAS_RETRIEVE_COL_DEF_FAIL CTAS_RETRIEVE_COL_DEF_FAIL message=xxx CTAS执行的列定义获取阶段失败

    10640

    利用Spring的@Async异步处理改善web应用中耗时操作的用户体验

    --> 13 <task:annotation-driven/> 14 15 </beans> 二、后台Service中,在方法前加上@Async 先定义服务接口: 1 package ctas.web.service Exception 27 */ 28 void clearCache(String cacheKey) throws Exception; 29 } 服务实现: 1 package ctas.web.service.impl ; 2 import ctas.web.service.AsyncService; 3 import org.springframework.beans.factory.annotation.Autowired

    68270

    91-oracle普通表改分区表的几种方法

    下面介绍4种普通表改分区表的方法, 供参考: 方法1: 新建分区表, 然后insert select; 或者在创建新分区表的同时插入(CTAS ,create table as select).

    41320

    2017年11月1日课后作业Hive 第二次课程DDL内部表、外部表、临时表的创建和特性DML

    existing_table_or_view_name [LOCATION hdfs_path]; CREATE TABLE psn3 LIKE psn1; 又另外一种常见的建表方式 Create Table As Select (CTAS ) CREATE TABLE psn4 AS SELECT * FROM psn1; CTL 和CTAS 之间的区别 CTL 只创建空表结构 CTAS 创建表结构,用MapReduce将数据转到hive ,数据格式,HIve的分隔符 DDL 总结 Hive 数据结构 基础数据结构 和Sql很像 高级数据结构 array 和map C/A/D/U DATABASE CREATE TABLE 标准的方式 CTAS

    45160

    记一次大表delete删数据导致数据库异常

    二、查看数据库情况 1.未开归档 2.UNDO表空间爆满 三、提出方案 1.经过沟通,该表为测试数据表,目前没有在使用;于是打算rename该表,通过ctas的方式去将需要的数据捞出来,重建索引和相关约束 rename table to table_20210410; 8.CTAS将需要的数据捞到新表(原来的表名)中。

    32930

    Oracle压缩黑科技(一)—基础表压缩

    Baseline CTAS create table t1 as select * from all_objects where rownum <= 50000; -- 2. CTAS with basic compression enabled create table t1 compress basic as select * from all_objects where CTAS without compression, then change to compressed create table t1 as select * from all_objects where 当我在CTAS(create table as select)加了压缩选项时, Oracle自动将pctfree置为0 —— 这将数据块的数量显著减少,只用了189个数据块。 (insert后的数据块644个,相比CTAS 714个要少一些的原因是因为pctfree从10变为了0) 最后一个测试告诉我们,将表从非压缩改为压缩之后,对现存的数据并没有影响。

    75880

    扫码关注腾讯云开发者

    领取腾讯云代金券