
数据库
文章平均质量分 70
零度anngle
情商不是八面玲珑的圆滑,而是德行具足后的虚心、包容和自信;成熟不是单纯到复杂的世故,而是复杂回归简单的超然;觉悟不是对世事的无所谓,而是对无能为力之事的坦然接受;成功不是追求别人眼中的最好,而是把自己能做的事情做得最好。热爱生活,热爱编程,热爱Java,喜欢探索,纸上得来终觉浅,绝知此事要躬行,愿与你一起在技术的海洋中成长!
博客:http://blog.csdn.net/zmx729618
展开
-
mysql 查询某字段中以逗号分隔的字符串的包含查询和关联查询实现
实现mysql查询某字段中以逗号分隔的字符串包含查询和关联查询原创 2022-07-25 15:57:30 · 5361 阅读 · 2 评论 -
springboot2+JPA集成 sharing-jdbc实现单库分表
1、用户表增长到一定程度,我们假设对user表进行分库操作,user为表的逻辑名,实际表名为user_${0..3},即user_0,user_1,user_2,user_3, 首先创建四张表:CREATE TABLE `user_0` ( `id` bigint(64) NOT NULL, `city` varchar(20) NOT NULL, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB D...原创 2021-04-26 09:57:55 · 1433 阅读 · 0 评论 -
centos之Python3.7安装cx_Oracle
1、环境2、安装oracle客户端(我下载的rpm格式)地址oracle客户端3、安装上传到服务器(1)yum install -y libaio(2)rpm -ivh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm(3)安装python客户端cx_Oraclepip3 install cx_Oracle(4)、配置环...转载 2020-01-16 11:52:20 · 2644 阅读 · 0 评论 -
数据库切分(3)之数据库切分实施策略和示例演示
本文原文连接: http://blog.csdn.net/bluishglc/article/details/7696085 ,转载请注明出处!本文着重介绍sharding切分策略,如果你对数据库sharding缺少基本的了解,请参考我另一篇从基础理论全面介绍sharding的文章:数据库Sharding的基本思想和切分策略第一部分:实施策略图1.数转载 2017-08-21 09:44:31 · 856 阅读 · 0 评论 -
Oracle查看连接数、表空间大小及使用率
select sysdate,c.tablespace_name,round(used_mb,1),round(total_mb,1),round(used_mb/total_mb,3)*100||'%'from (select tablespace_name, sum(bytes)/1024/1024 used_mb from dba_segm转载 2016-04-28 13:41:38 · 1584 阅读 · 0 评论 -
数据库ACID、隔离级别与MVCC
首先需要明确事务的概念:一组原子性的SQL查询,如果数据库引擎能够成功的对数据库应用该组查询的全部语句,那么就执行该组语句,否则所有语句都不执行。事务有ACID四个特性,即:原子性:一个事务是一个不可分割的最小工作单元,其操作要么全部成功,要么全部失败;一致性:数据库总是从一个一致性状态转换为另一个一致性状态。所谓一致性状态,就是数据库的所有完整性约束(尤其注意用户定义约束转载 2017-04-01 11:07:08 · 898 阅读 · 0 评论 -
MySQL分库分表总结参考
单库单表单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。 单库多表 随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能。如果使用MySQL, 还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间所有的转载 2017-03-28 14:55:29 · 532 阅读 · 0 评论 -
查看oracle数据库允许的最大连接数和当前连接数
在查看数据的连接情况很有用,写完程序一边测试代码一边查看数据库连接的释放情况有助于分析优化出一个健壮的系统程序来。1、查看当前的数据库连接数 select count(*) from v$process ; --当前的数据库连接数2、数据库允许的最大连接数 select value from v$parameter where name ='processes';原创 2017-01-04 14:40:52 · 130044 阅读 · 0 评论 -
Hibernate在Oracle同一SID下不同用户同名表名问题
一般来说hibernate配置数据库连接只需要下面几行配置[html] view plain copy print?##Oracle 9i/10g hibernate.dialect org.hibernate.dialect.Oracle9Dialect hibernate.connection.driver_class oracle.jd转载 2016-12-15 11:15:14 · 1476 阅读 · 0 评论 -
分库分表的几种常见形式以及可能遇到的难题
在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战。让人感到担忧的是,他们系统真的就需要“分库分表”了吗?“分库分表”有那么容易实践吗?为此,笔者整理了分库分表中可能遇到的一些问题,并结合以往经验介绍了对应的解决思路和建议。垂直分表垂转载 2016-11-24 09:56:04 · 874 阅读 · 0 评论 -
java完整JDBC操作数据库
java使用JDBC操作数据库的包含以下7个主要步骤:1、加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现。例如: try{ //加载MySql的驱动类 Cla原创 2016-10-20 17:41:22 · 1899 阅读 · 0 评论 -
J2EE项目使用自定义注解实现基于SpringMVC + Mybatis + Mysql的读写分离
1.为啥要读写分离? 大家都知道最初开始,一个项目对应一个数据库,基本是一对一的,但是由于后来用户及数据还有访问的急剧增多,系统在数据的读写上出现了瓶颈,为了让提高效率,想读和写不相互影响,读写分离就诞生了。 2.什么样的项目需要读写分离? 并不是所有项目都适合读写分离,如果我把我自己的博客网站也搞成读写分离的,菜鸟觉得哇好高大上;砖家就会说SB转载 2016-10-26 11:15:11 · 1929 阅读 · 0 评论 -
mysql 主从同步配置
先讲讲数据库的主从同步,两个好处: 一是读写分离可以用上。比如 写操作就写到主数据库,读就从从数据库读取 二是纯粹给数据库备份,以防硬盘彻底崩了主从数据库操作准备: 两台电脑,都安装好mysql 5.5及以上版本,最好两台电脑都安装同一版本数据库,且能单独正常使用。记住两台电脑的ip地址: 主数据库:192.168.0.102 从转载 2016-10-26 10:52:13 · 409 阅读 · 0 评论 -
BoneCP学习笔记
什么是BoneCP BoneCP 是一个快速、免费而且开源的java数据库连接池(JDBC Pool)管理工具库。如果你曾经使用过C3P0或者DBCP,那你肯定知道上面这句话的意思;如果你没用过这些,那简单的解释一下,它是一个能为你的应用管理数据库连接的工具。 官方网站:http://jolbox.com/ 为什么要学习BoneCP 本着转载 2016-08-09 14:35:11 · 801 阅读 · 0 评论 -
oracle函数之instr()和substr()实现列拆分
1、INSTR()函数 在Oracle中可以使用instr()函数对某个字符串进行判断,判断其是否含有指定的字符。 在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。 语法: instr(sourceString,destString,start,appearPosition) instr('源字符串' , '目转载 2016-06-22 17:01:31 · 6129 阅读 · 0 评论 -
数据库的水平/垂直切分的一些概念
垂直切分 垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式),这种拆分在大型网站的演变过程中是很常见的。当一个网站还在很小的时候,只有小量的人来开发和维护,各模块和表都在一起,当网站不断丰富和壮大的时候,也会变成多个子系统来支撑,这时就有按模块和功能把表划分出来的需求。其实,相对于垂直切分更进一步的是服务化改造,说得简单就是要把原来强耦合的系统拆转载 2017-08-03 09:35:01 · 567 阅读 · 0 评论 -
数据库切分(1)之基本思想和切分策略
一、基本思想 Sharding(切分)的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID转载 2017-08-17 10:32:34 · 641 阅读 · 0 评论 -
数据库切分(2)之垂直切分的粒度
垂直切分的粒度指的是在做垂直切分时允许几级的关联表放在一个shard里.这个问题对应用程序和sharding实现有着很大的影响. 关联打断地越多,则受影响的join操作越多,应用程序为此做出的妥协就越大,但单表的路由会越简单,与业务的关联性会越小,就越容易使用统一机制处理.在此方向上的极端方案是:打断所有连接,每张表都配有路由规则,可以使用统一机制或框架自动处理.比转载 2017-08-17 10:54:51 · 447 阅读 · 0 评论 -
Oracle高级操作:启停服务,开启PDB,创建表空间、用户、导入导出用户数据等
sqlplus system/orcl_123456@orcl //sqlplus连接select name from v$database; //查询当前数据库名select instance_name from v$instance; // 查询当前数据库实例名//创建临时表空间CREATE TEMPORARY TABLESPACE OX_TEMP TEMPFI...原创 2019-04-19 17:13:46 · 960 阅读 · 0 评论 -
linux下启动、关闭oracle服务
https://blog.csdn.net/heshushun/article/details/79773886 linux下启动、关闭oracle服务https://blog.csdn.net/wallwind/article/details/6775783 【故障处理】ORA-12162: TNS:net service name is incorrectly specified...转载 2019-04-19 14:06:08 · 420 阅读 · 0 评论 -
ORACLE客户端连接到数据库详解
原文出处:https://www.cnblogs.com/andy6/p/5877327.htmlOracle客户端连接到Oracle数据库服务器貌似不同于SQL serve中的网络配置,其实不然,只不过所有的SQLserver运行于Windows平台,故很多配置直接集成到了操作系统之中。所以无需配置客户端即可连接到服务器。Oracle客户端连接到数据库依赖于Oracle Net。O...转载 2019-04-17 11:07:29 · 3732 阅读 · 0 评论 -
CentOS静默安装Oracle12c详细过程
转载出处:https://blog.csdn.net/zwl18210851801/article/details/80774980本人亲测没有问题,强烈推荐好文!对上一篇文章的补充(增加,远程连接、自启动等),转载一篇文章:https://www.jianshu.com/p/309bb3504285大家可以对比看,相信会受益匪浅!说明:原创,经过一天的折腾,终于...转载 2019-04-12 11:27:51 · 2296 阅读 · 3 评论 -
mysql导出与导出远程操作
(一)数据库备份:mysqldump -h 10.31.xxx.xxx -u username -p --set-gtid-purged=off --databases dbname --tables tb_table_1 tb_table_2 > backupfile.sql(二)还原数据库方法一:mysql -h 10.31.xx.xx -u usernam...原创 2019-03-29 09:57:03 · 1186 阅读 · 0 评论 -
Oracle数据库实例、数据库、方案(用户)关系及相关操作
Oracle - 数据库的实例、表空间、用户、表之间关系完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即...转载 2019-04-01 10:44:19 · 2016 阅读 · 0 评论 -
Hibernate使用索引及索引添加原则
1、使用Hibernate添加索引的方式 1)表上加索引 @Table(name = "T_S_USER",indexes={@Index(name="trial_idIndex",columnList="trial_id"),@Index(name="material_idIndex",columnList="material_id")})原创 2017-08-31 11:40:07 · 14446 阅读 · 0 评论 -
数据库切分(7)之一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
版权声明:本文由本人撰写并发表于2012年9月份的《程序员》杂志,原文题目《一种支持自由规划的Sharding扩容方案——主打无须数据迁移和修改路由代码》,此处作为本系列的第五篇文章进行转载, 本文版权归《程序员》杂志所有,未经许可不得转载!作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Shardi转载 2017-08-22 11:42:11 · 870 阅读 · 0 评论 -
数据库切分(6)之多源数据的事务处理
系统经sharding改造之后,原来单一的数据库会演变成多个数据库,如何确保多数据源同时操作的原子性和一致性是不得不考虑的一个问题。总体上看,目前对于一个分布式系统的事务处理有三种方式:分布式事务、基于Best Efforts 1PC模式的事务以及事务补偿机制。我们下面对这三种处理方式一一进行分析。本文原文链接:http://blog.csdn.net/bluishglc/article/deta转载 2017-08-22 11:02:05 · 505 阅读 · 0 评论 -
数据库切分(5)之sharding实现层面的考量(使用框架还是自主开发)
当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后,接下来的问题就是如何去实现切分方案了,目前在sharding方面有不少的开源框架和产品可供参考,同时很多团队也会选择自主开发实现,而不管是选择框架还是自主开发,都会面临一个在哪一层上实现sharding逻辑的问题,本文会对这一系列的问题逐一进行分析和考量。本文原文连接:http://blog.csdn.net/bluishglc/转载 2017-08-22 10:22:20 · 357 阅读 · 0 评论 -
数据库切分(4)之全局主键生成策略
本文将主要介绍一些常见的全局主键生成策略,然后重点介绍flickr使用的一种非常优秀的全局主键生成方案。关于分库分表(sharding)的拆分策略和实施细则,请参考该系列的前一篇文章:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示本文原文连接: http://blog.csdn.net/bluishglc/article/details/7710738 ,转载请注明出处!转载 2017-08-22 09:47:36 · 422 阅读 · 0 评论 -
MYSQL Innodb 锁行还是锁表问题探讨
关于mysql的锁行还是锁表,这个问题,今天算是有了一点头绪,mysql 中 innodb是锁行的,但是项目中居然出现了死锁,锁表的情况。为什么呢?先看一下这篇文章。 做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统。假设 id=1 的这本书库存为 1 ,但是有 2 个人同时来借这本书,此处的逻辑为:Select restnum翻译 2016-06-21 17:16:30 · 8662 阅读 · 2 评论 -
MySQL事务隔离级别详解与实例说明
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirt转载 2016-07-06 17:09:25 · 576 阅读 · 0 评论 -
oracle dblink-数据同步(使用trigger)
物理上存放于网络的多个Oracle数据库,逻辑上可以看成一个单个的大数据库。 用户可以通过网络对异地数据库中的数据同时进行存取,而服务器之间的协同处理对于工作站用户及应用程序而言是完全透明的:开发人员无需关心网络的链接细节、无需关心数据在网络接点中的具体分布情况、也无需关心服务器之间的协调工作过程。 实现可分为四步。 1、在本地tnsnames.ora(该配置文件一般在"oracl转载 2016-07-12 16:25:14 · 5659 阅读 · 0 评论 -
Oracle查询session连接数和inactive
服务器Oracle数据库出现问题,用不到半天,就会报maxsession(150)的问题,肯定是数据库的会话超过最大数了。 由于服务器跑的是文件传输应用,占用的请求和会话肯定很大,因此用户数不大就已经让oracle的会话数达到最大值。 处理方式不外乎两种:扩大oracle最大session数以及清除inactive会话,当然还有,就是从数据库连接池和程序bug上面下手。 从转载 2016-04-28 10:28:17 · 3895 阅读 · 0 评论 -
Oracle用户profile属性
--查看profile 内容 select * from dba_profiles where profile='PF_EAGLE';--查看用户的profiles select username,profile from dba_users;--查看是否启用动态资源限制参数 SHOW PARAMETER RESOURCE_LIMIT;--启用限制 ALTE转载 2016-04-28 10:15:48 · 2837 阅读 · 0 评论 -
oracle trunc 函数处理日期格式
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; --显示当前时间2011-12-29 16:24:34select trunc(sysdate,'year') from dual; --截取到年(本年的第一天)2011-1-1select trunc(sysdate,'q') from dual; --转载 2016-04-28 09:42:44 · 1904 阅读 · 0 评论 -
oracle 查询当前占用cpu及时间最长的sql语句
SELECTA.USERNAME, A.COMMAND, A.STATUS,A.PROGRAM, A.MACHINE, A.CLIENT_IDENTIFIER,B.SQL_TEXT,B.CPU_TIME,B.SHARABLE_MEM,ROUND((B.DISK_READS + B.BUFFER_GETS)/B.EXECUTIONS)AS RESOURCE_COSTF转载 2016-04-27 17:31:38 · 6274 阅读 · 0 评论 -
Oracle密码过期the password has expired
调试Web项目的时候出现异常:[java] view plaincopyprint?java.sql.SQLException: ORA-28001: the password has expired 网上查了一下,是Oracle11g密码过期的原因连接Oracle,以Oracle用户登陆,输入以下命令[sql] view plaincop转载 2016-04-27 16:53:26 · 490 阅读 · 0 评论 -
使用Oracle的Job+Procedure实现数据的定时迁移备份
--创建数据迁移的日志表,记录自动数据迁移的执行时间create table mc_movedata_log(id varchar2(50) default sys_guid(),tb_name varchar2(50) not null,last_op_time date null);以下是对mc_msg_store表进行每天(凌晨4:30)轮询数据迁移的步骤。1.--创转载 2016-04-27 16:42:37 · 1535 阅读 · 0 评论 -
Oracle实现定时执行存储过程
一:简单测试job的创建过程案例: 1,先创建一张JOB_TEST表,字段为a 日期格式SQL> create table JOB_TEST(a date);Table createdSQL> commit;Commit complete2,创建一个存储过程 bb 作用是往pig表中插入数据SQL> create or replace procedure JOB_P转载 2016-04-27 16:29:54 · 10414 阅读 · 0 评论 -
oracle日期时间型timestamp相关转换
1、获取系统时间的语句(ssxff6获取小数点后面六位)select sysdate,systimestamp,to_char(systimestamp, 'yyyymmdd hh24:mi:ssxff6'), to_char(systimestamp, 'yyyymmdd hh24:mi:ss.ff6') from dual; 2、字符型转成timestamp selec转载 2016-04-27 16:04:50 · 28273 阅读 · 1 评论