前 言 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 ☕专栏简介:代码随想录leetcode速通训练营java版本 文章简介:哈希表理论,leetcodeT242...,T349,T202,T1 一、哈希表的基础理论回顾 1.哈希表主要用来解决快速获取某个元素的问题。...比如查找一个学校的姓名为张三的学生,如果用数组需要的时间复杂度为O(n),但是使用哈希表的时间复杂度为O(1). 2.哈希冲突是指经过哈希计算后,其存储位置在数组的同一个物理空间。...复杂度分析: 时间复杂度: 方法二:哈希表 字母只有26个,维护一个字母频次的哈希表记录,再遍历字符串t,每出现一个字母就将频次减少1,如果有<0的频次,就说明出现了不一样的字符。...class Solution { public boolean isAnagram(String s, String t) { // 题解2:哈希表 // 0.
目标是通过将SYS_POINTS_DETAIL中的存储的用户积分记录按用户汇总,将每个人的汇总的总积分、剩余积分、已用积分、过期积分存储到SYS_POINTS_SUM_DETAIL表中。...Oracle 积分数据修复 Oracle的SYS_POINTS_DETAIL表中含有144546条积分数据,涉及14691个用户,下面修复SQL脚本执行用了6s左右。...优化查询,首先应是考虑添加索引,索引无法完全满足后,在考虑拆表等方案。...之后手动实现分页查询用户,并汇总该用户的各项积分存入SYS_POINTS_SUM_DETAIL表。...MySQL的SYS_POINTS_DETAIL表中含有167040条积分数据,涉及7748个用户,下面修复SQL脚本执行用了17s左右。
今天数据迁移的小组找到我,希望我能够重新构建一些测试环境,其中测试环境中的一些分区表都需要去掉分区,转换成普通表的形式,因为他们在做一些工作的时候碰到了问题,而且希望必要的约束等都保留,这个需求听起来倒不复杂...,很清晰,我看了下需要转换的表,一看有将近100多个,而且重构好几套环境,想想都头疼。...ddl.sql1 > tmp_$1_ddl.sql echo ";" >> tmp_$1_ddl.sql rm $1_ddl.tmp rm tmp_$1_ddl.sql1 如果我们指定需要处理的表为...-rw-r--r-- 1 xxxxx dba 5723 Sep 11 14:32 tmp_CUSTOMER_INFO_ddl.sql 如果目前有100多个表。...可以写一个简单的入口文件来调用chg_partition.sh 即可,这样不管有多少表需要转换都可以一次搞定,最后生成一个run.sql的文件,直接运行run.sql就可以创建所有的表了。
Oracle 原因 发现有一张表的高水位线(HWM)挺大,想试下shrink table(表空间收缩) image.png image.png shrink必须开启行迁移功能。...alter table TTRD_OTC_INSTRUMENT_EVAL enable row movement;该语句会造成引用表table_name的对象(如存储过程、包、视图等)变为无效。...table table_name shrink space [ | compact | cascade] ; alter table table_name shrink space compact ; 收缩表,...alter table table_name shrink space ; 收缩表, 降低high water mark 。...alter table table_name shrink space cascade ; 收缩表, 降低high water mark, 并把相关索引也要收缩一下。
入职后我写一个开发规范文档:软件开发手册(欢迎各位大佬提出意见) 虽然对开发规范有所改变,但还是因为不可抗力因素无法执行,也是造成我最近想跳槽的原因; 原因 某天晚上,开发经理突然打电话:大剩,我不小心删表了...对重要的库进行全量备份(数据量少;数据量多的可以考虑全量+增量结合备份); 1.将备份脚本恢复 # 恢复备份 cat db_test_db1.sql |mysql -uroot -p 2.恢复误删数据或者表(
话说造成代码覆盖都不知道是谁干的,多次建议开发使用Git); 虽然对开发规范有所改变,但还是因为不可抗力因素无法执行,也是造成我最近想跳槽的原因; 原因 某天晚上,开发经理突然打电话:大剩,我不小心删表了...数据量少;数据量多的可以考虑全量+增量结合备份); 1.将备份脚本恢复 # 恢复备份 cat db_test_db1.sql |mysql -uroot -p Bash Copy 2.恢复误删数据或者表(
机器之心报道 编辑:泽南、张倩 涨价 1500 元,你获得了更长时间的续航,更好的屏幕,更小的体积…… 但硬盘却降级了。 6 月 7 日,苹果在 WWDC 大会...
打开注册表,详细位置在我的图片里。点击图片查看原图。 WaitToKillServiceTimeout 等待去强制杀掉服务的时间,我把时间设置为了2秒,双击设置为2000就可以了。 ?
朋友一次在腾讯云数据库后台的phpmyadmin导入sql脚本,页面爆出404的错误: 之后刷新表创建成功,但是表打不开,呈现了死锁状态,删除表也删除不了,命令行登录不带-A参数,use数据库use不了...,腾讯云数据库后台的导入功能也受到影响 CPU飙升到百分之百,但其他数据库、表查询等功能不受影响。...第一时间想到的是,表死锁坏掉了,果然登录到腾讯云的DCM的查看会话,一堆的PAM的IP的select去查询这个表 DCM的会话对于PAM的IP的会话无法直接kill掉,所以采用了命令行的方式去kill...切记单独给这个数据库设置一个账户 登录数据库之后 > use xxx; > show full processlist; 会看到一堆占用的会话,使用kill id的方式来kill掉会话 之后把那个死锁的表删除掉...> drop table xxx; 切记:导入的时候一定不要在腾讯云数据库后台的phpmyadmin导入,很容易会出现上述的问题,导致数据表损坏死锁,CPU飙升 腾讯云云数据库没有阿里云数据库的后台做的好
对于外部表的使用而言,可能是既陌生又熟悉的感觉,说陌生可能自己真正的使用机会要少一些,而熟悉可能是大家比较常用的通过外部表来查看数据库日志,其实外部表还有更丰富的内容。...当然了外部表的使用都是基于目录来实现的。...外部表调用的引擎有两个,一个oracle_datapump引擎,一个是oracle_loader引擎,在使用中和datapump,sql*loader都是有一定的关联的。 比如下面的例子。...比如我们需要一个全新的外部表,需要得到emp.data中的数据。可以使用如下的方式。...然后直接把数据库日志文件以行的形式加载,生成一个只读的表。日志中的每一行在数据库中都是一行记录。
如果某一个表数据量很大,导出dump文件很大的情况下,使用导出导入工具其实会花费不少的时间....这样一个操作的一个基本前提是使用了独立表空间,开启innodb_file_per_table....我们选择一个表users作为测试所用,数据量在2万条左右。...跨版本传输表空间-目标端操作 目标端的操作非常关键,目标端是MySQL 5.7的环境。 首先需要在目标端创建相应的空表。然后使用如下的语句把数据文件截断。...通过错误信息可以发现和表的一个属性有关。
这个专题讲一些日常运维的异常处理 今天讲一次undo表空间使用率99%的问题处理 1....现象 公司一套11g的RAC undo表空间使用率在99%,一直不会下降,由于我们用的是自动UNDO空间管理,可能的原因可能就是由于会话一直在利用UNDO里面的内容 2....SID获取HASH_VALUE,然后查看具体的SQL语句 发现这些语句为通过DBLINK来获取数据的语句 联想到这个远程数据库前几天发生故障 这里可以肯定是由于分布式查询导致的问题 2.3查看undo表空间各个时间段
分类: Oracle 在sql语句中,如果from后面有多个表时,关于表的联结方法是很重要的一个环节。...大体有nested loop join,hash join,merge join -->nested loop join 这种场景一般适用于大表和小表的关联,一般来说小表适用做为驱动表,对于小表中的匹配记录和大表做关联...,这个时候小表是在外部循环,大表在内部循环,小表中的匹配记录都和大表做一个关联。...,表t中的数据多,就以表t1位驱动表,走了全索引扫描查取到t1的数据,然后对于t1中的数据和t做匹配,匹配的时候走了唯一性扫描 ?...-->hash join 这种场景适合于大表和大表之间的关联。通过hash算法来做两个表之间的匹配映射。
在比较经典的表联结方法中,nested loop join和hash join是比较常用的,对于sort-merge join来说,可能略微有些陌生。 在数据库中有一个隐含参数,默认是开启的。...这种联结的运行原理想比nested loop join,hash join而言没有驱动表的说法,所以sort-merge join会可能产生大量的随机读。...比如我们有表emp,dept, 查询语句为 select empno,ename,dname,loc from emp,dept where emp.deptno =dept.deptno 如果采用...sort-merge join的时候,就会对emp,dept表进行order by 的操作。...如果本身表中的数据量很大,做sort-merge join就会耗费大量的cpu资源,临时表空间,相比来说不是很划算,完全可以通过其他的联结方式来实现。
随版本迭代以及需求变更,接口中的逻辑可能越来越臃肿,关联查询的表越来越多,查询的数据量越来越大,为保证业务闭环,新增与更新可能要同时操作N张表,以上均是影响接口性能的因素。...解决方案 由于对应表处于死锁状态,那么首先需要将死锁的表释放,杀掉对应的查询进程。...阿里巴巴开发手册中建议:查询时关联表不要超过三张。 基于此建议,我们将原SQL语句进行拆分,以避免在造成长事务造成数据库表死锁导致接口长时间pending的问题。经过测试问题得解。...information_schema表: MySQL提供了一些用于查看锁和事务状态的系统表。...表包含当前的锁等待列表等。
线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串......线性表和链表的物理结构: 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。...顺序表 在计算机科学中,顺序表是一种常见且重要的数据结构。顾名思义,顺序表是一种按照元素在内存中的物理顺序进行存储和访问的数据结构。它可以看作是一段连续的内存空间,用于存储相同类型的元素。...顺序表的优点 1.支持随机访问:由于顺序表在内存中是连续存储的,因此可以通过下标直接访问任何一个元素。这使得顺序表具有高效的随机访问能力,时间复杂度为O(1)。...2.有序存储:顺序表中的元素按照其在数组中的位置顺序存储,因此保持了元素的逻辑顺序。这使得顺序表适用于需要保持元素有序性的场景,例如排序、查找等操作。
一、问题描述 早上正在上班路上,群里客户说,有一张24G的大表,delete删了26小时还没有跑完,目前进程还在跑让帮忙处理下,停止当前进程,并保留对应条件的数据,多余数据删掉。...二、查看数据库情况 1.未开归档 2.UNDO表空间爆满 三、提出方案 1.经过沟通,该表为测试数据表,目前没有在使用;于是打算rename该表,通过ctas的方式去将需要的数据捞出来,重建索引和相关约束...四、执行过程 1.备份保留 表创建语句。 2.记录当前无效对象。...7.回滚成功后,rename 原表。 rename table to table_20210410; 8.CTAS将需要的数据捞到新表(原来的表名)中。...11.比对无效对象,数据是否一致 12.drop掉rename的表。 drop table USER.TABLE_20210410 cascade;
关于分区表的move操作还是很值得深究的一个问题。如果分区表中含有lob字段,难度还会加大。 对于普通的表而言,做move操作室理所当然,oracle提供的方式很直接快捷。...一般来说,如果尝试对分区表进行move操作,会得到如下的错误警告。...比如对下面3个大表,如下的sql就可以生成成百上千条语句来完成partition级别的move操作。...使用普通表来和分区做一个交换。...表空间的变更是目的,但是数据的重组就牵扯了数据的导出,导入之类的工作,大道至简,但是细节太多,还是需要多加注意。
\utestdb\test_forum_post' is marked as crashed and should be repaired而且看日志损坏的还不止一张表,我的注意力暂时先放在了出错的表上。...他们用的是MyISAM,查看了其它所有的表的存储引擎,发现清一色都是MyISAM.所以我就可以基本断定这个出问题的表也是MyISAM 对于MyISAM表修复,可以用myisamchk来做或者使用repair...首先myisamchk和repair只能修复MyISAM表,相比来说,myisamchk的输出信息要更详细一些,优化,分析表的信息都会输出,repair则比较直接,repair无法修复InnoDB的表,...The storage engine for the table doesn't support repair check则同时支持MyISAM表和InnoDB表 其次myisamchk操作myisam...表时必须保证表不能被使用,check/repair则可以在线操作。
在前几篇中讨论过海量数据的并行加载,基本思路就是针对每一个物理表都会有一个对应的外部表,在做数据迁移的时候,如果表有上百G的时候,一个物理表对应一个外部表性能上会没有任何提升。...这个时候可以考虑一个物理表对应多个外部表,比如一个表有100G。...可以考虑生成100个external dump 文件,然后加载生成100个外部表,每个dump文件对应一个外部表,这样做数据的插入的时候就相对容易控制了。...每一个外部表的数据加载到目标库之后,commit一次,就能及时的释放Undo资源,提高性能。...LOCATION ( 't_2.dmp' ) ); 对应的脚本如下: 其中在DUMP目录下存放着生成的dump文件,根据动态匹配得到最终生成了几个dump文件,来决定创建几个对应的外部表。
领取专属 10元无门槛券
手把手带您无忧上云