DB&SQL
朝闻道-夕死可矣
朝闻道,夕死可矣!
展开
-
file_fdw&postgres_fdw
数据库版本postgresql13.2postgres_fdw方便了pg之间的访问,兼容性请参照官网:http://www.postgres.cn/docs/13/postgres-fdw.html另外还有mysql_fdw等file_fdw 是为了直接访问外部文件一种特性postgres_fdw例子,这里用一台服务器测试,用户u1本地账户,test本地库;u2远程账户,test2远程库管理员执行:create database test;create user u1 with原创 2021-05-09 14:35:15 · 770 阅读 · 0 评论 -
Oracle表结构转Mysql表结构
1. fnc_table_to_mysql 主体程序create or replace function fnc_table_to_mysql ( i_owner in string, i_table_name in string, i_number_default_type in string := 'decimal', i_auto_incretment_column_name转载 2021-01-12 15:58:42 · 1213 阅读 · 0 评论 -
MySQL动态列值转换列名
数据表结构三张表:学生表、课程表、成绩表 CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `stunm` VARCHAR(20) NOT NULL COMMENT '学生姓名', PRIMARY KEY (`stuid`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB; CREA...转载 2020-12-24 08:41:02 · 1901 阅读 · 1 评论 -
TimescaleDB时序数据库介绍
背景随着物联网的发展,时序数据库的需求越来越多,比如水文监控、工厂的设备监控、国家安全相关的数据监控、通讯监控、金融行业指标数据、传感器数据等。在互联网行业中,也有着非常多的时序数据,例如用户访问网站的行为轨迹,应用程序产生的日志数据等等。时序数据有几个特点1. 基本上都是插入,没有更新的需求。2. 数据基本上都有时间属性,随着时间的推移不断产生新的数据,旧的数据不需要保存太久。业务方对时序数据通常有几个查询需求1. 获取最新状态,查询最近的数据(例如传感器最新的状态)2.转载 2020-08-19 17:17:43 · 1445 阅读 · 0 评论 -
PostgreSQL与MySQL对比
PostgreSQL与MySQL对比都属于开放源码的一员,性能和功能都在高速地提高和增强。MySQL AB的人们和PostgreSQL的开发者们都在尽可能地把各自的数据库改得越来越好,所以对于任何商业数据库使用其中的任何一个都不能算是错误的选择。PostgreSQL :免费原则:对于一个数据库,稳定性和速度并不能代表一切。对于一个成熟的数据库,稳定性肯定会日益提供。而随着硬件性能的飞速提高,速度也不再是什么太大的问题。1架构对比MySQL: 多线程PostgreSQL: 多进程...转载 2020-08-18 17:10:39 · 1389 阅读 · 1 评论 -
Oracle的TO_CHAR
1)TO_CHAR(number,'format_mode')9 -->Represents a number 数字转字符显示0 --> Forces a zero to be displayed 如果是空或者是零强制显示. -->Prints a decimal point 小数点, --> Prints a comma as a thousands indicator 原样输出FM(fm) -> 去掉空格或者小数点后的占位0(如果是9格式化的去掉,0格式化的不去.原创 2020-08-12 17:07:15 · 186 阅读 · 0 评论 -
轻量级数据库中间件利器Sharding-JDBC深度解析
主题简介:1、关系型数据库中间件核心功能介绍2、Sharding-JDBC架构及内核解析3、Sharding-JDBC未来展望一、关系型数据库中间件核心功能介绍关系型数据库凭借灵活查询的SQL和稳定的存储及事务引擎,一直以来是业务存储领域的首选。而在规模越来越大的互联网年代,单一的关系型数据库却已难满足需求。开发人员不愿放弃SQL查询的灵活度及对之前代码的兼容性,而又无法承受数据量过大时所带来的性能瓶颈。因此NoSQL和NewSQL分别产生,而NoSQL的不兼容性和NewSQL的不成熟,转载 2020-08-04 15:25:31 · 884 阅读 · 1 评论 -
数据中间件(转)
1数据库拆分过程及挑战 互联网当下的数据库拆分过程基本遵循的顺序是:垂直拆分、读写分离、分库分表(水平拆分)。每个拆分过程都能解决业务上的一些问题,但同时也面临了一些挑战。1.1 垂直拆分对于一个刚上线的互联网项目来说,由于前期活跃用户数量并不多,并发量也相对较小,所以此时企业一般都会选择将所有数据存放在一个数据库 中进行访问操作。举例来说,对于一个电商系统,其用户模...转载 2019-08-15 16:08:15 · 288 阅读 · 0 评论 -
数据库锁
MySQL:https://blog.csdn.net/jc_benben/article/details/68926463Oracle:https://blog.csdn.net/jc_benben/article/details/43764837MSSQL:https://blog.csdn.net/jc_benben/article/details/52046250原创 2020-07-28 08:59:34 · 102 阅读 · 0 评论 -
MySQL与Oracle、MSSQL字段差异等
其中TINYINT在mysql中表示范围是-128-127,对应oracle应该用3位表示,所以应该用NUMBER(3,0)代替,当然后者的范围确实比前者是大了些的。另外TINYINT(1)和TINYINT(4)在表示数的范围上是一样的,只是在显示时mysql会根据数字位数及zerofill设置,决定是否添加补0显示。一、常见数据类型在MySQL与Oracle数据库中的表现形式 说明 mysql oracle 变长字符串 .转载 2020-07-28 08:31:11 · 228 阅读 · 0 评论 -
乐观锁与悲观锁
在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像memcache、hibernat...转载 2018-09-13 17:33:27 · 150 阅读 · 0 评论 -
触发器
MSSQL:解释插入操作(Insert):Inserted表有数据,Deleted表无数据 删除操作(Delete):Inserted表无数据,Deleted表有数据 更新操作(Update):Inserted表有数据(新数据),Deleted表有数据(旧数据) CREATE TRIGGER [dbo].[TR_TEST] ON [dbo].[TEST] FOR INSERT,DEL...原创 2018-06-20 11:31:59 · 306 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理(转)
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主要从...转载 2018-06-25 14:50:06 · 123 阅读 · 0 评论 -
平衡查找树之B树(转)
前面讲解了平衡查找树中的2-3树以及其实现红黑树。2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key。维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树。与自平衡二叉查找树...转载 2018-06-25 14:48:16 · 160 阅读 · 1 评论 -
服务器三大体系SMP、NUMA、MPP介绍
从系统架构来看,目前的商用服务器大体可以分为三类,即对称多处理器结构(SMP:Symmetric Multi-Processor),非一致存储访问结构(NUMA:Non-Uniform Memory Access),以及海量并行处理结构(MPP:Massive Parallel Processing)。它们的特征分别描述如下:SMP(Symmetric Multi-Processor) 所...原创 2018-03-21 11:40:51 · 563 阅读 · 0 评论 -
Sqlserver中解析JSON
参考:https://www.red-gate.com/simple-talk/sql/t-sql-programming/consuming-json-strings-in-sql-server/主要的过程代码单独贴出来:CREATE FUNCTION dbo.parseJSON( @JSON NVARCHAR(MAX))RETURNS @hierarchy TABLE ( e...转载 2018-03-20 14:01:08 · 5464 阅读 · 3 评论 -
行转列逗号隔开&逗号隔开列转行
ORACLE:SQL> create table t(id int,name varchar2(30));表已创建。SQL> insert into t values(1,'a');已创建 1 行。SQL> insert into t values(1,'b');已创建 1 行。SQL> insert into t values(1,'c...原创 2016-01-27 15:47:06 · 12458 阅读 · 0 评论 -
NVARCHAR2与VARCHAR2的相互转换
nvarchar2 -> varchar2utl_raw.cast_to_varchar2(utl_raw.cast_to_raw(v_nm_login)) orTranslate(yourWords USING CHAR_CS)varchar2-> nvarchar2utl_raw.cast_to_nvarchar2(utl_raw.cast_to_raw(v_usern原创 2018-01-25 15:36:03 · 7204 阅读 · 0 评论 -
oracle集合&对象
一,集合集合,遵循面向对象风格的现代编程,包含三种类型:变长数组(varry),类似于java,c++中的数组,可以用于存储有序的元素集合,每个元素 一个索引,记录元素在数组的位置;需要注意的是,变长数组修改只能整体修改,有最大大小,初始化设置,但是可以修改嵌套表 嵌套在另外一个表中的表,可以插入,更新,删除桥套标中的单个元素,比变长数组灵活,并且没有最大大小关联数组 类似于java的哈西表,是一...原创 2016-02-16 16:08:14 · 678 阅读 · 0 评论 -
oracle ASH
http://docs.oracle.com/cd/E11882_01/server.112/e41573/autostat.htm#PFGRF027记录最近时间的等待时间,初步调优语句SELECT ash.session_id, ash.session_serial#, ash.user_id, ash.program,原创 2015-12-21 14:12:39 · 426 阅读 · 0 评论 -
事务的特性以及隔离级别
目录事务特性隔离级别数据库的实现常用数据库阻塞语句查询事务特性⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。⑶ 隔离性(Isolation) 隔离...原创 2017-02-16 15:00:02 · 684 阅读 · 0 评论 -
CAP原则(CAP定理)、BASE理论
CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。 CAP原则是NOSQL数据库的基石。Consistency(一致性)。 Availability(可用性)。Partition tolerance(分区容错性)。分布式系统的CAP理论:理论首先...转载 2018-09-14 15:45:09 · 166 阅读 · 0 评论 -
查看表占用空间
oracle:SELECT segment_name, bytes FROM user_segments WHERE segment_type = 'TABLE'; mysql:SELECT CONCAT(ROUND(SUM(data_length/1024/1024),2),'MB') AS DATA,MAX(tables.table_rows) t_rowsFROM in...原创 2018-09-25 09:24:54 · 545 阅读 · 0 评论 -
sql字符串拼接
-- oracle:使用||或者concatSQL> select 'aaa'||'bbb' from dual;'AAA'||'BBB'------------aaabbbSQL> select concat('aaa','ccc') from dual;CONCAT('AAA'------------aaaccc-- mysql中,使用+,如果字符串全是数字原创 2016-03-23 11:37:07 · 5484 阅读 · 0 评论 -
自动更新时间
有时候我们需要增加一列,在列被插入或者更新时候,自动更新记录时间mysql: ALTER TABLE TABLENAME ADD UPDATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ...原创 2018-12-06 17:47:19 · 219 阅读 · 0 评论 -
数据同步工具简单介绍
非实时同步工具DataX阿里的Datax是比较优秀的产品,基于python,提供各种数据村塾的读写插件,多线程执行,使用起来也很简单,定义好配置json文件执行脚本就可以了,非常适合离线数据,增量数据可以使用一些编码的方式实现,但是也仅仅针对insert数据比较有效,update数据就不适合github地址:https://github.com/alibaba/DataXSqoo...原创 2018-12-08 17:26:56 · 5406 阅读 · 0 评论 -
阿里云开源离线同步工具DataX3.0简单介绍
介绍:DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能 方法一、直接下载DataX工具包:DataX下载地址 下载后解压至本地某个目录,进入bin目录,即可运行同步作业: $ cd {YOUR_DATAX_HOME}/bin$ pyt...原创 2018-12-08 17:09:50 · 585 阅读 · 0 评论 -
oracle 索引跳跃式扫描
索引跳跃式扫描(INDEX SKIP SCAN)索引跳跃式扫描(INDEX SKIP SCAN)适用于所有类型的复合B树索引(包括唯一性索引和非唯一性索引),它使那些在where条件中没有对目标索引的前导列指定查询条件但同时又对该 索引的非前导列指定了查询条件的目标SQL依然可以用上该索引,这就像是在扫描该索引时跳过了它的前导列,直接从该索引的非前导列开始扫描一样(实际的执行过程并非如此),这...转载 2018-11-15 11:25:41 · 1245 阅读 · 0 评论 -
oracle调用shell
1,创建java sourcecreate or replace and compile java source named Execshellcmd asimport java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;public class Execshellcmd ...原创 2018-11-14 17:03:14 · 1745 阅读 · 0 评论 -
数据库多表连接方式介绍HASH-JOIN
1.概述 hash join是一种数据库在进行多表连接时的处理算法,对于多表连接还有两种比较常用的方式:sort merge-join 和 nested loop。 为了比较清楚的介绍hash join的使用场景以及为何要引入这样一种连接算法,这里也会顺带简单介绍一下上面提到的两种join方式。 连接方式是一个什么样的概念,或者说我们为何要有而且有好几种,对于不太了解数据库的人来讲可能...转载 2018-11-13 14:04:19 · 1025 阅读 · 0 评论 -
关于innodb中MVCC的一些理解
一、MVCC简介MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能读锁:也叫共享锁、S锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改...转载 2018-10-24 15:19:44 · 207 阅读 · 0 评论 -
为什么MyISAM会比Innodb的查询速度快
INNODB在做SELECT的时候,要维护的东西比MYISAM引擎多很多: 1)数据块,INNODB要缓存,MYISAM只缓存索引块, 这中间还有换进换出的减少; 2)innodb寻址要映射到块,再到行,MYISAM记录的直接是文件的OFFSET,定位比INNODB要快 3)INNODB还需要维护MVCC一致;虽然你的场景没有,但他还是需要去检查和维护MVCC (Multi...转载 2018-10-21 17:33:30 · 2211 阅读 · 1 评论 -
MySQL · 引擎特性 · B+树并发控制机制的前世今生
前言B+树是1970年Rudolf Bayer教授在《Organization and Maintenance of Large Ordered Indices》一文中提出的[1]。它采用多叉树结构,降低了索引结构的深度,避免传统二叉树结构中绝大部分的随机访问操作,从而有效减少了磁盘磁头的寻道次数,降低了外存访问延迟对性能的影响。它保证树节点中键值对的有序性,从而控制search/insert...转载 2018-10-17 15:39:18 · 1881 阅读 · 0 评论 -
MySQL 源码分析 Innodb缓冲池刷脏的多线程实现
简介为了提高性能,大多数的数据库在操作数据时都不会直接读写磁盘,而是中间经过缓冲池,将要写入磁盘的数据先写入到缓冲池里,然后在某个时刻后台线程把修改的数据刷写到磁盘上。MySQL的InnoDB引擎也使用缓冲池来缓存从磁盘读取或修改的数据页,如果当前数据库需要操作的数据集比缓冲池中的空闲页面大的话,当前缓冲池中的数据页就必须进行脏页淘汰,以便腾出足够的空闲页面供当前的查询使用。如果数据库负载太高...转载 2018-10-18 13:39:18 · 759 阅读 · 0 评论 -
记录用户登录操作
记录登录成功的用户信息到一个测试表:create table login (ip varchar(30),u_name varchar(30)); create or replace trigger logon_db_record after logon on database declare ip STRING(30); user STRING(30);原创 2017-12-13 16:16:26 · 3931 阅读 · 0 评论 -
日期函数
-- 列举了不同数据库的日期操作-- oracleselect to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;select sysdate+1/24;select trunc(sysdate,'MI') from dual;select sysdate-trunc(sysdate,dd);select extract(year原创 2016-12-12 09:21:29 · 297 阅读 · 0 评论 -
行转列和列传行
with temp as(select t.TEXT as text from T_TEXT_TESTt)select temp1.text 类型, count(1) 数量 from (select substr(text, instr(text, ',', 1, rn) + 1, inst原创 2015-03-04 13:14:30 · 1035 阅读 · 0 评论 -
sql时间分组
比如按照五分钟的时间:to_date(to_char(t.datatime, 'yyyy-mm-dd hh24')||':'||lpad(floor(to_char(t.datatime, 'mi')/5)*5,2,0) || ':00','yyyy-mm-dd hh24:mi:ss')三分钟to_date(to_char(t.datatime, 'yyyy-mm-dd hh24'原创 2017-01-06 13:43:14 · 957 阅读 · 0 评论 -
oracle批量授权&维护索引&外键
-- 批量授权:DECLARE V_GRANTOR_USER VARCHAR2(20) := 'USER1'; -- 原来 V_GRANTEE_USER VARCHAR2(20) := 'USER2'; -- 被授予的用户BEGIN FOR L IN (SELECT OBJECT_NAME FROM DBA_OBJECTS原创 2015-11-16 15:25:44 · 628 阅读 · 0 评论 -
多表update
mysql:-- 举例:UPDATE A a , B b SET a.a1 = b.b1,a.a2 = b.b2 WHERE a.id = b.id-- 语法: Single-table syntax:UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT} [, col_name原创 2017-02-28 11:46:09 · 270 阅读 · 0 评论