
数据库
xiaomin_____
努力~~
展开
-
Oracle--分区表(范围分区、Hash分区、等)
一、使用分区的优点: 1、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用; 2、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可; 3、均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能; 4、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。 二、Oracle数据库提...原创 2015-10-13 22:13:59 · 508 阅读 · 0 评论 -
mysql mediumtext longtext
一、字符串类型类型范围说明 Char(N) [ binary]N=1~255 个字节binary :分辨大小写固定长度std_name cahr(32) not nullVarChar(N) [binary]N=1~255 个字节binary :分辨大小写可变长度std_address varchar(256...原创 2016-11-26 21:10:46 · 190 阅读 · 0 评论 -
MySQL的timeout相关配置参数小结一把
MySQL的版本: MySQL-XtraDB-5.1.47 首先我们来看看有那些涉及到timeout的配置参数,看看,还真不少啊! mysql> show variables like '%timeout%';+----------------------------+-------+| Variable_name | Valu...原创 2015-12-12 12:05:43 · 139 阅读 · 0 评论 -
Communications link failure错误分析
1.异常描述Java代码 Exception: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 7 millise...原创 2015-12-12 13:07:26 · 372 阅读 · 0 评论 -
spring 事物多线程问题
Dec 12, 2015 4:46:04 PM com.alibaba.druid.pool.DruidDataSource errorSEVERE: discard connectioncom.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure du...原创 2015-12-12 18:03:41 · 435 阅读 · 0 评论 -
JDBC事务控制管理
1、事务(1)事务的概念事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。例如:A——B转帐,对应于如下两条sql语句update account set money=money-100 where name=‘a’; update account set money=money+100 where name=‘b’;数据库默认事务是自动提...原创 2015-12-13 00:54:20 · 114 阅读 · 0 评论 -
分库分表的几种常见形式以及可能遇到的难
在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战。让人感到担忧的是,他们系统真的就需要“分库分表”了吗?“分库分表”有那么容易实践吗?为此,笔者整理了分库分表中可能遇到的一些问题,并结合以往经验介绍了对应的解决思路和建议。垂直分表...原创 2017-04-11 23:33:42 · 120 阅读 · 0 评论 -
数据库死锁
如果需要“修改”一条数据,首先数据库管理系统会在上面加锁,以保证在同一时间只有一个事务能进行修改操作。锁定(Locking)发生在当一个事务获得对某一资源的“锁”时,这时,其他的事务就不能更改这个资源了,这种机制的存在是为了保证数据一致性。 每个使用关系型数据库的程序都可能遇到数据死锁[1] 的情况。理解什么是死锁之前先要了解锁定的概念:多数情况下,可以认为如果一个资源被锁定,...原创 2016-12-07 10:20:37 · 95 阅读 · 0 评论 -
mvcc
一、 事务是指对系统进行的一组操作,为了保证系统的完整性,事务需要具有ACID特性,具体如下:1. 原子性(Atomic) 一个事务包含多个操作,这些操作要么全部执行,要么全都不执行。实现事务的原子性,要支持回滚操作,在某个操作失败后,回滚到事务执行之前的状态。 回滚实际上是一个比较高层抽象的概念,大多数DB在实现事务时,是在事务操作的数据快照上进行的(比如,MVCC),...原创 2016-12-17 13:33:48 · 109 阅读 · 0 评论 -
MySQL日志—Undo | Redo
摘要: 本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务的原子性(Atomicity) 事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程中发生 ...原创 2016-12-17 13:33:49 · 115 阅读 · 0 评论 -
postgreSQL锁
首先应用挂起在DELETE语句部分,先查一下DELETE的表数据量,发现只有3K多行,这么小的表应该很快跑完才对。猜想应该是表被锁住导致操作不能进行下去。于是通过下面的语句查询是否该表上存在锁:SQL:select a.locktype,a.database,a.pid,a.mode,a.relation,b.relnamefrom pg_locks ajoin pg_class...原创 2014-10-30 23:03:47 · 262 阅读 · 0 评论 -
Java数据类型和MySql数据类型对应表
java mysql 数据类型对照类型名称显示长度数据库类型JAVA类型JDBC类型索引(int)描述 VARCHARL+NVARCHARjava.lang.String12 CHARNCHARjava.lang.String1 BLOBL+NBLOB...原创 2015-11-26 19:27:53 · 114 阅读 · 0 评论 -
Druid连接池 一个设置 removeAbandonedTimeout
<!-- 超过时间限制是否回收 --> <property name="removeAbandoned" value="true" /> <!-- 超时时间;单位为秒。180秒=3分钟 --> <property name="removeAbandonedTimeout" value="180" /> &原创 2015-11-23 21:30:12 · 3927 阅读 · 0 评论 -
MySQL5日期类型DATETIME和TIMESTAMP相关问题详解
MySQL5的日期类型有三种:DATETIME、DATE和TIMESTAMP,除了DATE用来表示一个不带时分秒的是日期,另外两个都带时分秒。TIMESTAMP还可以精确到毫秒。 其次还有个共性,就是他们的格式“不严格”,很自由,一般你认为对的格式都可以正确插入到数据库中。 这里主要解决带时分秒日期的一些常见问题。 一、IMESTAMP 1、TIMESTAM...原创 2015-10-17 23:42:04 · 132 阅读 · 0 评论 -
Sharding与数据库分区(Partition)的区别
随着时光流逝,数据库中的数据表越来越大,服务器已经不堪重负,为了解决这个问题,提出了数据分区的软件理念,简称sharding。下面就是这一软件理念的相关介绍。1.Sharding定义 "Shard" 这个词英文的意思是"碎片",而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏(MMORPG)中。"Sharding" 姑且称之为"分片"。 Sharding 不是一门新技术...原创 2015-10-21 00:16:36 · 124 阅读 · 0 评论 -
数据库参考,键值(Key-value)数据库,列式存储,文档型数据库,图型数据库
http://www.searchdatabase.com.cn/showcontent_69833.htm 【TechTarget中国原创】DB-Engines网站专门提供数据库管理系统流行度的排名信息,这个排名主要根据5个因素来进行:Google以及Bing搜索引擎的关键字搜索数量、Google Trends的搜索数量、Indeed网站中的职位搜索量、LinkedIn中提到关键字的...原创 2015-10-22 15:18:28 · 424 阅读 · 0 评论 -
NewSQL数据库入门篇之NewSQL介绍及架构原理
数据的海量增长,对数据库的存储及运行能力都提出了更高的要求,一时间,传统关系型数据库如oracle、MS sql server等绝对垄断的地位遭到了挑战,NoSQL数据库和NewSQL数据库出现了。顾名思义,NoSQL数据库中的No表明它不要SQL了,但是NewSQL数据库的New说明了它是对传统基于SQL数据库的创新。先来看什么是NewSQL数据库?NewSQL数据库是开源软件产品,相较于传...原创 2015-10-22 15:19:52 · 2208 阅读 · 0 评论 -
扯谈下XA事务
普通事务 普通事务的实现是比较好理解的。以jdbm3为例,大概是这样的过程: 每个事务都新建一个事务文件,当commit时,先把修改过的数据块,写到事务文件里,然后再一次性地写到数据库文件里。 如果commit时挂掉了,那么重启之后,会再次从事务文件里把修改过的块写到数据库文件里。最后再删除事务文件。 https://github.com/jankotek/JDB...原创 2016-09-06 10:22:52 · 135 阅读 · 0 评论 -
分布式事务 - 两阶段提交与三阶段提交
在分布式系统中,著有CAP理论,该理论由加州大学伯克利分校的Eric Brewer教授提出,该理论阐述了在一个分布式系统中不可能同时满足一致性(Consistency)、可用性(Availability),以及分区 容错性(Partition tolerance)。一致性在分布式系统中数据往往存在多个副本,一致性描述的是这些副本中的数据在内容和组织上的一致。可用性可用性描述了系统对...原创 2016-09-07 10:36:32 · 528 阅读 · 0 评论 -
MySQL数据库水平切分的实现原理解析
随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台机器的访问负载,降低了...原创 2015-10-28 14:42:26 · 115 阅读 · 0 评论 -
mysql binlog 修改数据
1.直接update语句修改update table set description='动作\n三姐4' 动作\n三姐32.查询出来手动修改SELECT * from table where `code` ='c736ed64-3fa4-4f1f-b735-5753998edefb';动作\\n三姐3...原创 2016-09-29 13:49:57 · 159 阅读 · 0 评论 -
mysql 多主多从
目录: 1. MySQL复制原理 2. mysql一主多从 3. mysql 双主 4. mysql 读写分离 5. mysql + keepalived高可用 6. mysql 监控 7. mysql 参数详解 8. mysql 监控 9. mysql replication 常见错误及处理方法 ...原创 2016-10-27 00:19:51 · 330 阅读 · 0 评论 -
undo log与redo log原理分析
数据库通常借助日志来实现事务,常见的有undo log、redo log,undo/redo log都能保证事务特性,这里主要是原子性和持久性,即事务相关的操作,要么全做,要么不做,并且修改的数据能得到持久化。假设数据库在操作时,按如下约定记录日志:1. 事务开始时,记录START T2. 事务修改时,记录(T,x,v),说明事务T操作对象x,x的值为v 3. 事务结束时,记录C...原创 2016-12-17 21:57:37 · 153 阅读 · 0 评论 -
字符集编码插入Mysql数据库是,字符utf8编码超过3位时的错误以及解决,Incorrect string value: '\xF0\xA1\xBF\xA8\...
发一下牢骚和主题无关: Incorrect string value: '\xF0\xA1\xBF\xA8\xE9\x82...' for column 'last_name' 这个问题出在mysql上,mysql如果设置编码集为utf8那么它最多默许只能支撑到3个字节的UTF-8编码, 而4个字节的UTF-8字符还是存在的,这样一来如果你建表的时...原创 2015-12-29 19:28:42 · 1729 阅读 · 0 评论 -
乐观锁和悲观锁
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不...原创 2016-01-09 00:45:00 · 85 阅读 · 0 评论 -
mysql,oracle,sql server中的默认事务隔离级别查看,更改
未提交读(隔离事务的最低级别,只能保证不读取物理上损坏的数据)已提交读(数据库引擎的默认级别)可重复读可序列化(隔离事务的最高级别,事务之间完全隔离) 可串行化比较严谨,级别高;MySQLmysql默认的事务处理级别是'REPEATABLE-READ',也就是可重复读1.查看当前会话隔离级别select @@tx_isolation;2.查看系统当前隔...原创 2017-08-09 13:44:25 · 147 阅读 · 0 评论 -
数据库死锁分析与解决
一、死锁的表现1、错误信息是:事务(进程 ID)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。2、错误信息是:事务(进程 ID )与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务。二、死锁的原因1、由于多用户、多任务的并发性和事务的完整性要求,当多个事务处理对多个资源同时访问时,若双方已锁定一部...原创 2017-08-17 10:00:41 · 398 阅读 · 0 评论 -
Index column size too large. The maximum column size is 767 bytes
Index column size too large. The maximum column size is 767 bytes 5.6及以上高版本MySQL innodb引擎创建表或者添加索引的时候 报Index column size too large. The maximum column size is 767 bytes低版本可能是正常的 原因主要是高版本的数...原创 2017-09-28 18:01:20 · 160 阅读 · 0 评论 -
主键索引和唯一索引的区别
-- 区别 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。唯一性索引列允许空值,而主键列不允许为空值。主键列在创建时,已经默认为空值 + 唯一索引了。主键可以被其他表引用为外键,而唯一索引不能。一个表最多只能创建一个主键,但可以创建多个唯一索引。主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。在 RB...原创 2017-09-29 10:05:52 · 241 阅读 · 0 评论 -
唯一索引与主键索引的比较
唯一索引唯一索引不允许两行具有相同的索引值。如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据将使表中的键值重复时,数据库也拒绝接受此数据。例如,用户表中的身份证(idcard) 列上创建了唯一索引,则所有身份证不能重复 主键索引主键索引是唯一索引的特殊类型。数据库表通常有一列或列组合,其值用来唯一标识表中的每一行。该列称为表的主键。在数据库...原创 2017-09-29 10:21:10 · 173 阅读 · 0 评论 -
Mysql几种索引类型的区别及适用情况
如大家所知道的,Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE。那么,这几种索引有什么功能和性能上的不同呢?FULLTEXT即为全文索引,目前只有MyISAM引擎支持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。值得一提...原创 2017-09-30 16:27:04 · 95 阅读 · 0 评论 -
Otter-入门篇1(阿里开源项目Otter介绍)
Otter-入门篇1(阿里开源项目Otter介绍)前言呜啦啦啦啦!今天笔者又来开坑了,这次开坑的对象呢是阿里的一个开源项目Otter,Otter它是一个数据同步解决方案,可以解决本地跨网络跨机房跨地域的数据同步问题,并且拥有可观的效率,web管理工具等特点,而且背景也很优秀,据说阿里B2B内部的本地/异地机房的同步需求基本全上了otter。附上:喵了个咪的博客:w-blog...原创 2017-10-11 11:16:12 · 209 阅读 · 0 评论 -
Canal+Otter - 前日篇(1)
数据库同步中间件Canal+Otter - 前日篇(1)启 - 我们为什么需要数据库跨机房同步随着业务的增长和技术的演进,在应用架构上,我们经历了单一用用架构->垂直应用架构->分布式应用架构的发展。对应的,后台数据库也出现了分布式的解决方案。读写分离,负载均衡读写以及两点双写集群甚至于多点多写集群这些,都离不开数据库的同步。一般的,这些同步都是在同一机房内的。 渐渐的,我...原创 2017-10-11 11:21:36 · 132 阅读 · 0 评论 -
Otter(一)初识----简介和基本架构图
tter 初识----简介和基本架构图 前阵子做的一个安防平台的项目,其中有一个需求,就是满足22个车站的数据库同步,虽然之前也接触过数据库同步,但是只是做过简单的master/slave,对于22个跨机房的数据库同步还真没做过,经过一番的交流讨论之后暂定使用阿里巴巴的开源项目otter,来解决这个问题。 一:基本介绍 Otter是早先阿里巴巴为了...原创 2017-10-11 11:23:41 · 266 阅读 · 0 评论 -
Mycat 分布式事务的实现
引言:Mycat已经成为了一个强大的开源分布式数据库中间件产品。面对企业应用的海量数据事务处理,是目前最好的开源解决方案。但是如果想让多台机器中的数据保存一致,比较常规的解决方法是引入“协调者”来统一调度所有节点的执行。 本文选自《分布式数据库架构及企业实践——基于Mycat中间件》。 随着并发量、数据量越来越大及业务已经细化到不能再按照业务划分,我们不得不使用分布式数据库提高...原创 2017-08-02 11:27:53 · 133 阅读 · 0 评论 -
Mycat跨分片Join
1 前言Mycat目前版本支持跨分片的join,主要实现的方式有四种。全局表ER分片HBT(参考MyCAT人工智能解决跨分片SQL.docx)ShareJoinShareJoin在开发版中支持,前面三种方式1.3.0.1支持2 ShareJoin ShareJoin是一个简单的跨分片Join,基于HBT的方式实现。目前支持2个表的join,原理就是解析SQ...原创 2017-08-02 11:26:36 · 163 阅读 · 0 评论 -
MyCat部署运行(Windows环境)与使用步骤详解
1、MyCat概念1.1 总体架构MyCAT的架构如下图所示:MyCAT使用MySQL的通讯协议模拟成一个mysql服务器,并建立了完整的Schema(数据库)、Table(数据表)、User(用户)的逻辑模型,并将这套逻辑模型映射到后端的存储节点DataNode(MySQL Instance)上的真实物理库中,这样一来,所有能使用MySQL的客户端以及编程语言都能将MyCAT当...原创 2017-08-02 10:20:51 · 121 阅读 · 0 评论 -
mysql悲观锁与乐观锁
最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中, 将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了 加...原创 2016-01-09 00:46:17 · 116 阅读 · 0 评论 -
MySQL 日志
概述MySQL日志记录了MySQL服务器的各种行为,MySQL中日志有如下几种:类型描述Error Log记录 MySQL启动,运行,停止过程General Query Log 记录客户端的连接以及接受的SQLBinary Log 记录改变数据的语句(通常用于复制)Relay Log记录 从Master上接受到的数据变更Sl...原创 2017-01-11 20:58:42 · 121 阅读 · 0 评论 -
mysql中间件研究(Atlas,cobar,TDDL,Mycat)
mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。 下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧。 Atlas Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它...原创 2016-02-23 10:36:24 · 438 阅读 · 0 评论