
数据库
文章平均质量分 75
NM_IT
it爱好者
展开
-
mysql 主从复制数据
mysql主从配置小记: 共有四台机器:A(10.1.10.28),B(10.1.10.29),C(10.1.10.30),D(10.1.10.31)。 配置后结果:A-C互为主从,B为A的slave,D为C的slave。 0)准备工作 在四台机器上面安装好mysql后,创建用于同步的账号。 添加账户: 复制代码代码如下:INSERT INTO user转载 2014-07-21 16:45:26 · 615 阅读 · 0 评论 -
SQL语句优化经验
我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为摘录、并汇总的部分资料: (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询原创 2015-02-11 15:02:43 · 583 阅读 · 0 评论 -
oracle 查询慢的原因总结
查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也转载 2015-02-10 15:52:42 · 1344 阅读 · 0 评论 -
PGBouncer介绍及使用方式
1. 什么是pgbouncer PGBouncer是一个轻量级的针对PostgreSQL的数据库连接池工具,能够给客户端提供一个统一的链接视图。1.下载pgbouncer的安装包http://pgfoundry.org/frs/?group_id=1000258&release_id=1952,本次下载的安装包是pgbouncer-1.5.2.tar.gz2.下载原创 2015-02-12 15:34:15 · 696 阅读 · 0 评论 -
pgbouncer使用快速入门
pgbouncer是PostgreSQL的一个轻量的连接池软件。任何应用程序都可以把 pgbouncer 当作一个 PostgreSQL 服务器来连接,然后 pgbouncer 会处理与服务器连接,或者是重用已存在的连接。 使用 pgbouncer 主要目的标是降低因为新建到 PostgreSQL 的连接而导致的性能损失。我们知道,对于每个新的连接,PostgreSQL都会建启动原创 2015-02-12 15:52:38 · 1589 阅读 · 1 评论 -
Top 20 Sql
top 20 效率最差的sql SELECT * from ( SELECT EXECUTIONS ,ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio, ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, SQL_TEXT FROM V$SQLARE原创 2015-02-13 10:00:53 · 597 阅读 · 0 评论 -
数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示
第一部分:实施策略图1.数据库分库分表(sharding)实施策略图解(点击查看大图)1.准备阶段对数据库进行分库分表(Sharding化)前,需要开发人员充分了解系统业务逻辑和数据库schema.一个好的建议是绘制一张数据库ER图或领域模型图,以这类图为基础划分shard,直观易行,可以确保开发人员始终保持清醒思路。对于是选择数据库转载 2015-04-16 14:09:33 · 564 阅读 · 0 评论 -
数据库分库分表(sharding)系列(二) 全局主键生成策略
第一部分:一些常见的主键生成策略一旦数据库被切分到多个物理结点上,我们将不能再依赖数据库自身的主键生成机制。一方面,某个分区数据库自生成的ID无法保证在全局上是唯一的;另一方面,应用程序在插入数据之前需要先获得ID,以便进行SQL路由。目前几种可行的主键生成策略有:1. UUID:使用UUID作主键是最简单的方案,但是缺点也是非常明显的。由于UUID非常的长,除占用大量存储转载 2015-04-16 14:28:39 · 534 阅读 · 0 评论 -
分布式哈希表
我们从浅入深一步一步介绍什么是分布式哈希表。 1、哈希函数 哈希函数是一种计算方法,它可以把一个值A映射到一个特定的范围[begin, end]之内。对于一个值的集合{k1, k2, … , kN},哈希函数把他们均匀的映射到某个范围之中。这样,通过这些值就可以很快的找到与之对应的映射地址{index1, index2, … , indexN}。对于同一个值,哈希函转载 2015-04-16 11:27:19 · 664 阅读 · 0 评论 -
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
版权声明:本文由本人撰写并发表于2012年9月份的《程序员》杂志,原文题目《一种支持自由规划的Sharding扩容方案——主打无须数据迁移和修改路由代码》,此处作为本系列的第五篇文章进行转载, 本文版权归《程序员》杂志所有,未经许可不得转载!作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sh转载 2015-04-16 14:42:47 · 1179 阅读 · 0 评论 -
数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后,接下来的问题就是如何去实现切分方案了,目前在sharding方面有不少的开源框架和产品可供参考,同时很多团队也会选择自主开发实现,而不管是选择框架还是自主开发,都会面临一个在哪一层上实现sharding逻辑的问题,本文会对这一系列的问题逐一进行分析和考量。本文原文连接: http://blog.youkuaiyun.com/bluishglc/art转载 2015-04-16 14:36:23 · 514 阅读 · 0 评论 -
一致性哈希算法与Java实现
一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了。 因此,引入了一致性哈希算法:转载 2015-04-16 11:32:06 · 545 阅读 · 0 评论 -
数据库分库分表(sharding)系列(四) 多数据源的事务处理
系统经sharding改造之后,原来单一的数据库会演变成多个数据库,如何确保多数据源同时操作的原子性和一致性是不得不考虑的一个问题。总体上看,目前对于一个分布式系统的事务处理有三种方式:分布式事务、基于Best Efforts 1PC模式的事务以及事务补偿机制。我们下面对这三种处理方式一一进行分析。本文原文链接:http://blog.youkuaiyun.com/bluishglc/article/deta转载 2015-04-16 14:41:16 · 552 阅读 · 0 评论 -
mysql乐观锁总结和实践
特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁,具体参见下面介绍: 乐观锁介绍:乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。那么我们如何实现乐观锁呢,一般转载 2015-06-16 15:20:40 · 569 阅读 · 0 评论 -
mySql数据库 forUpdate 实战总结
悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 使用场景举例:以MySQL InnoDB为例商品goods表原创 2015-06-16 15:12:44 · 9267 阅读 · 0 评论 -
mysql profiles 性能查询
通过show variables like xxx 详解mysql运行时参数 1, 查看MySQL服务器配置信息 Java代码 mysql> show variables; 2, 查看MySQL服务器运行的各种状态值 Java代码 mysql> show global status; 3, 慢查询 Ja原创 2015-07-31 15:01:15 · 530 阅读 · 0 评论 -
MySql 插入(insert)性能测试
测试环境: 笔记本电脑CPU:I5 系统:MAC OS 10.7内存:8G硬盘:5400转,笔记本硬盘 MySql 版本:Oracle官网下载的mysql-5.5.24-osx10.6-x86_64, 默认安装MySql JDBC驱动版本:mysql-connector-java-5.1.20 MySql建表语句:原创 2015-11-04 18:46:12 · 737 阅读 · 0 评论 -
Oracle SQL性能优化
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表原创 2015-02-11 14:33:05 · 465 阅读 · 0 评论 -
Oracle AWR报告生成与查看
可以通过dba_hist_wr_control查看当前的配置情况,当前awr为每1小时做一次数据快照,保留时间为7天。SYS@PENG SQL> select * from dba_hist_wr_control; DBID SNAP_INTERVAL RETENTION TOPNSQL-原创 2015-02-10 16:45:33 · 777 阅读 · 0 评论 -
oracle
sqlplus username/password@//IP:1521/servername原创 2015-02-10 16:53:28 · 470 阅读 · 0 评论 -
数据库事物分析
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现 ×: 不会出现脏读不可重复读幻读Read uncommitted√√√原创 2014-11-25 09:53:26 · 543 阅读 · 0 评论 -
orcle 函数列子
CREATE OR REPLACE FUNCTION "TIMEJUDGE" (date1 varchar,date2 varchar,mytype number,hour number,minust number) RETURN number is--date1 搜索时间(当前时间) ,--date2 时间段 ,mytype 时间类型1表示时间格式(##0800#2359##) 2表示原创 2014-12-18 14:10:54 · 531 阅读 · 0 评论 -
ORACLE PROCEDURE
CREATE OR REPLACE PROCEDURE "AUTOACCOUNT2" (userId VARCHAR2, accountBalanceId VARCHAR2, lastDate VARCHAR2, balance VARCHAR2)IS-- 20140108115315218 --a36bb688-eb7e-40fb-ac20-08d9212fa028 --2014原创 2014-12-18 14:17:34 · 578 阅读 · 0 评论 -
druid连接池配置
今天做项目,提出更换连接池。最终替换为druid 阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好,Druid与其他数据库连接池使用方法基本一样(与DBCP非常相似),将数据库的连接信息全部配置给DataSource对象。package demo.test; import java.io.InputStream;import java原创 2015-01-13 16:56:07 · 710 阅读 · 0 评论 -
web架构 之 MySQL负载均衡 主从复制 读写分离
MySQL负载均衡架构图如下:一、分别在192.168.150.130和192.168.150.131上安装mysql二、配置master(192.168.150.130)1、编辑/etc/my.cnf,添加如下(如etc没my.cnf,cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf转载 2015-02-02 15:23:52 · 576 阅读 · 0 评论 -
mysql数据向Redis快速导入
Redis协议* 参数个数$ 第一个参数长度 第一个参数$ 第一个参数长度 第二个参数... ...编写SQL语句,把mysql数据组合成Redis协议数据流SELECT CONCAT("*16\r\n",'$', LENGTH(redis_cmd), '\r\n',redis_cmd, '\r\n','$', LENGTH(redis_key), '原创 2014-12-10 21:27:59 · 868 阅读 · 0 评论 -
redis
Tape is Dead,Disk is Tape,Flash is Disk,RAM Locality is King. — Jim GrayRedis不是比较成熟的memcache或者Mysql的替代品,是对于大型互联网类应用在架构上很好的补充。现在有越来越多的应用也在纷纷基于Redis做架构的改造。首先简单公布一下Redis平台实际情况:2200+亿 commands原创 2014-12-10 21:07:32 · 739 阅读 · 0 评论 -
获取sql语句的执行情况近来我的oracle数据库(9201)运行慢
SQL trace 跟踪其他session的执行情况步骤:1、查询session:sid和#serialselect sid,serial#,username from v$session where username is not null;2、将查询结果(有选择性的)输入到exec dbms_system.set_sql_trace_in_session(:sid,:seria原创 2015-02-10 09:29:16 · 835 阅读 · 0 评论 -
PostgreSQL备份与恢复示例
PostgreSQL备份与恢复文档控制一、 简介二、 SQL转储(一)pg_dump(二)pg_dumpall;(三)备份压缩与分割三、 文件系统级别备份(冷备份)四、 在线热备份(归档)(一)备份(二)恢复 一、 简介Postgresql的备份分为三种:l原创 2015-02-10 10:46:51 · 499 阅读 · 0 评论 -
PostgreSQL学习手册(角色和权限)
PostgreSQL是通过角色来管理数据库访问权限的,我们可以将一个角色看成是一个数据库用户,或者一组数据库用户。角色可以拥有数据库对象,如表、索引,也可以把这些对象上的权限赋予其它角色,以控制哪些用户对哪些对象拥有哪些权限。 一、数据库角色: 1. 创建角色: CREATE ROLE role_name; 2. 删除角色: D原创 2015-02-10 11:10:32 · 541 阅读 · 0 评论 -
如何查询Oracle性能监控
1、监控等待事件select event,sum(decode(wait_time,0,0,1)) prev, sum(decode(wait_time,0,1,0)) curr,count(*)from v$session_wait group by event order by 4;Lock wait occur when a session attempts to acq转载 2015-02-10 16:05:06 · 722 阅读 · 0 评论 -
Oracle sql语法中decode函数的用法
decode(条件,值1,结果1,值2,结果2,值3,结果3,... 值n,结果n,缺省值)改函数的解释:IF 条件=值1 THEN RETURN(结果1)ELSIF 条件=值2 THEN RETURN(结果2) ......ELSIF 条件=值n THEN RETURN(结果n)ELSE RETURN(缺省值)原创 2015-02-11 15:42:32 · 8072 阅读 · 0 评论 -
oracle物化视图
一、创建物化视图主要语法creatematerialized view[view_name] {TABLESPACE (表空间名)}--保存表空间 {BUILD [DEFERRED|IMMEDIATE(默认值)]} --延迟刷新还是立即刷新refresh [fast|complete|force转载 2015-02-10 17:55:20 · 537 阅读 · 0 评论 -
oracle 监控sql
1、监控事例的等待select event,sum(decode(wait_Time,0,0,1)) "Prev", sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot" from v$session_Wait group by event order by 4; 2、回滚段的争用情况se转载 2015-02-10 16:08:09 · 543 阅读 · 0 评论 -
(1)-V$SESSION_WAIT
这是一个寻找性能瓶颈的关键视图。它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件)。当系统存在性能问题时,本视图可以做为一个起点指明探寻问题的方向。 V$SESSION_WAIT中,每一个连接到实例的session都对应一条记录。V$SESSION_WAIT中的常用列 l SID转载 2015-02-10 16:17:28 · 487 阅读 · 0 评论 -
分析SQL语句使用资源情况
V$SQLAREA 本视图持续跟踪所有shared pool中的共享cursor,在shared pool中的每一条SQL语句都对应一列。本视图在分析SQL语句资源使用方面非常重要。V$SQLAREA中的信息列HASH_VALUE:SQL语句的Hash值。ADDRESS:SQL语句在SGA中的地址。这两列被用于鉴别SQL语句,有时,两条不同的语句可能hash值相同。这时候,必原创 2015-02-11 14:37:09 · 582 阅读 · 0 评论 -
分库分表
一、前言中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了。有垂直和水平两种。垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出订单库和用户库。水平拆分的概念,是同一个业务数据量大之后,进行水平拆分。上图中订单数据达到了4000万,我们也知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表...转载 2019-04-23 10:05:09 · 362 阅读 · 0 评论