数据库
文章平均质量分 58
yingmu3630
这个作者很懒,什么都没留下…
展开
-
select for update
xjr80C7HA3olbVr3y6H3t5--AcosrkB7YVl0ewJ1DtN5R9BE-aI3vCVHHdrfLVR_rshuFGAuxGSELECT...FOR UPDATE 语句的语法如下: SELECT ... FOR UPDATE [OF column_list][WAIT n|NOWAIT][SKIP LOCKED]; 其中: OF 子句用于指定即将更新...原创 2016-03-30 17:45:58 · 86 阅读 · 0 评论 -
使用MySQL Proxy解决MySQL主从同步延迟
使用MySQL Proxy解决MySQL主从同步延迟 MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利。但这种方式有个比较大的缺陷在于MySQL的同步机制是依赖Slave主动向Master发请求来获取数据的,而且由于服务器负载、网络拥堵等方面的原因,Master与Slave 之间的数据同步延迟是完全没有保证的。短在1秒内,长则几秒、几十...原创 2016-08-15 16:26:18 · 73 阅读 · 0 评论 -
oracle trunc 函数
Oracle trunc()函数的用法--Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysdate) from dual --2013-01-06 今天的日期为2013-01-062.select trunc(sysdate, 'mm') from dual --2013-0...原创 2015-08-25 17:57:23 · 403 阅读 · 0 评论 -
分库分表
第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。 水平切分数据库:可以降低单台机器的负载,同时最大限度的降低了宕机造成的损失; 负载均衡策略:...原创 2016-07-03 12:30:30 · 97 阅读 · 0 评论 -
oracle 分析函数
oracle分析函数--SQL*PLUS环境一、总体介绍12.1 分析函数如何工作语法 FUNCTION_NAME(,…) OVER ( ) PARTITION子句 ORDER BY子句 WINDOWING子句 缺省时相当于RANGE UNBOUNDED PRECEDING 1. 值域窗(RANGE WINDOW) RANGE N PRECEDING 仅对数值或日期类型有效,...原创 2015-08-03 12:49:01 · 83 阅读 · 0 评论 -
跨数据库事务研究
两种方案:1、分布式事务 jta2、事务补偿 3 二阶段提交分布式事务,记得google有篇关于存储的论文专门讲这个。分布式事务要保证的100%一致性基本不可能,特别是异构数据库。我的建议是降低实时性要求,通过对账,应答的方式识别业务失败,再进行修复,这样更具可操作性。你可以把对每个库的操作都独立开来,一个发生异常,其他都还原。涉及还原的问题就看你自己怎么解决了,有的可...原创 2015-05-12 11:16:15 · 196 阅读 · 0 评论 -
Oracle的悲观锁和乐观锁
为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么叫悲观锁呢,悲观锁顾名思义,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住。而乐观锁就是认为数据一般情况下不会造成冲突,所以在数据进行提交更新的...原创 2015-04-22 13:27:17 · 86 阅读 · 0 评论 -
MySQL数据库MyISAM和InnoDB存储引擎的比较
MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种。这里介绍关于这两种引擎的一些基本概念(非深入介绍)。MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持外键。每张MyISAM表存放在三个文件中:frm 文件存放表格定义;数据文件是MYD (MYData);索引文件是MYI (MYIndex)。InnoDB是...原创 2015-04-21 13:49:24 · 76 阅读 · 0 评论 -
nosql学习
1、NoSQL数据库概念NoSQL数据库是非关系型数据库,主要是针对关系型数据库而言,它主要是用来解决半结构化数据和非机构化数据的存储问题。2、为什么使用NoSQL数据库?(1)对数据库的高并发读写的需求 关系型数据库能够应付每秒上万次的读请求,但是却没有办法应付每秒上万次的写请求,如果达到每秒上万次的写请求,磁盘的IO就无法承受这么大的压力了。(2)对...原创 2015-04-20 09:56:45 · 95 阅读 · 0 评论 -
pl/sql 乱码解决
select userenv('language') from dual;查看字符集之后设置 windows 系统变量NLS_LANG = "查出的字符集"原创 2016-08-25 16:25:31 · 109 阅读 · 0 评论 -
oracle 字段类型 收录
字段类型 中文说明 限制条件 其它说明CHAR 固定长度字符串 最大长度2000 bytesVARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytesNVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytesDATE 日期(日-月-年) DD-MM-YY...原创 2015-11-02 19:52:53 · 60 阅读 · 0 评论 -
oracle sql调优 执行计划固化 排序等 SQL Plan Baseline
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id...原创 2015-11-14 16:13:09 · 990 阅读 · 0 评论 -
数据库超时
:arrow: :arrow: :arrow:原创 2016-03-07 10:37:40 · 95 阅读 · 0 评论 -
oracle merge into
/*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 *//*語法:MERGE [INT...原创 2016-03-04 16:16:19 · 79 阅读 · 0 评论 -
oracle 分区表
(1) 表空间及分区表的概念表空间: 是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。分区表: 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个“表空间”(物理文件上),这样查询数据时,不至于每次都扫...原创 2016-03-02 14:59:37 · 66 阅读 · 0 评论 -
一些注意的sql写法
Dashboard > 流程空间 > home > SQLMAP编写规范以及一些常见的SQL问题 Page OperationsView Edit Attachments (0) Info Browse SpacePages Labels Attachments Mail News Templates Advanced Add Content Add P...原创 2016-01-20 14:07:38 · 152 阅读 · 0 评论 -
oracle 组合索引使用
在Oracle中可以创建组合索引,即同时包含两个或两个以上列的索引。在组合索引的使用方面,Oracle有以下特点: 1、 当使用基于规则的优化器(RBO)时,只有当组合索引的前导列出现在SQL语句的where子句中时,才会使用到该索引; 2、 在使用Oracle9i之前的基于成本的优化器(CBO)时, 只有当组合索引的前导列出现在SQL语句的where子句中时,才可能会...原创 2016-01-14 20:33:28 · 169 阅读 · 0 评论 -
oracle 索引
一、 ROWID的概念存储了row在数据文件中的具体位置:64位 编码的数据,A-Z, a-z, 0-9, +, 和 /,row在数据块中的存储方式SELECT ROWID, last_name FROM hr.employees WHERE department_id = 20;比 如:OOOOOOFFFBBBBBBRRROOOOOO:data objec...原创 2016-01-14 20:24:55 · 84 阅读 · 0 评论 -
oracle 查看sql执行计划
如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题。 如果一条SQL平时执行的好好的,却有一天突然性能很差,如果排除了系统资源和阻塞的原因,那么基本可以断定是执行计划出了问题。 看懂执行计划也就成了SQL优化的先决条件。 这里的SQL优化指的是SQL性能问题的定位,定位后就可以解决问题。 ...原创 2016-01-14 14:06:28 · 199 阅读 · 0 评论 -
oracle 查看执行计划的方式
一、通过PL/SQL Dev工具 1、直接File->New->Explain Plan Window,在窗口中执行sql可以查看计划结果。其中,Cost表示cpu的消耗,单位为n%,Cardinality表示执行的行数,等价Rows。 2、先执行 EXPLAIN PLAN FOR select * from tableA where paraA=1,再 selec...原创 2016-12-20 18:16:42 · 130 阅读 · 0 评论 -
sql distinctt group by 分析
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。示例1select distinct name from A示例2select distinct name, id from A[color=red]实际上是根据“name+id”来去重,distinct同时作用在了name...原创 2015-04-14 15:28:27 · 112 阅读 · 0 评论 -
SQL查询中in和exists的区别分析
SQL查询中in和exists的区别分析如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标select * from A where id in (select id from B);select * from A where exists (select 1 from B where A.id=B.id...原创 2015-04-14 14:14:40 · 97 阅读 · 0 评论 -
oracle count(null)与count(*)
count()括号中如果是列名的话则不包含NULL如果是*字符或常量 则包括NULL下面做几个小例子来看一下SQL> create table test(id number,name varchar2(10));Table created.SQL> insert into test values(1,'wh');1 row created.SQL> insert i...原创 2013-10-14 15:14:24 · 464 阅读 · 0 评论 -
oracle 常用函数整理
当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE from dual 当前时间减去7小时的时间 select sysdate - interval '7' hour from dual 当前时间减去7天的时间 select sysdate - interval ’7’ day from dual 当前时间减去...原创 2013-10-14 14:38:20 · 89 阅读 · 0 评论 -
oracle with as 用法
with as语法–针对一个别名with tmp as (select * from tb_name)–针对多个别名with tmp as (select * from tb_name), tmp2 as (select * from tb_name2), tmp3 as (select * from tb_name3), …--相当于建...原创 2013-10-14 13:56:04 · 127 阅读 · 0 评论 -
jndi、数据库连接池、数据库连接池原理等
JNDI( Java Naming and Directory Interface ),是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。如同其它很多Java技术一样,JDNI是provider-based的技术,暴露了一个 API和一个服务供应接口(SPI)。这意味着任何基于名字的技术都能通过JNDI而提供服务,只要JNDI支持这项技术。JNDI目前所支持的技术包括 LDAP...原创 2014-12-31 13:20:34 · 210 阅读 · 0 评论 -
inner join、 left join 、right join、 outer join
left join 是left outer join的简写,left join默认是outer属性的right join 是right outer join的简写,right join默认是outer属性的full outer join join on 与inner join相同 只是一种省略的写法就把inner去掉了 例子:A表(a1,b1,c1) B表...原创 2013-08-29 18:37:04 · 110 阅读 · 0 评论 -
oracle 日期函数(reprint)
获取昨天:select trunc(SYSDATE-1) from dual;检查一下:select to_char (trunc(SYSDATE-1),'yyyy-mm-dd HH24:MI:SS') from dual;获取上个月第一天00:00:00: select add_months(trunc(sysdate,'MON'),-1) from d...原创 2013-08-12 10:47:05 · 198 阅读 · 0 评论 -
window7 下安装mysql 解压版(转)
到官网下载mysql-5.5.10-win32.zip,然后将mysql解压到任意路径,如:C:\mysql-5.5.10-win32 打开计算机->属性->高级系统设置->环境变量,新建一个环境变量,变量名为:MYSQL_HOME,变量值为你的mysql根目录,如:C:\mysql-5.5.10-win32 然后在系统变量Path中添加:;%MYSQL_HOME%\bin 在...原创 2013-12-17 13:56:35 · 74 阅读 · 0 评论 -
oracle 常用易忘函数
NVL2(expr1,expr2,expr3):如果参数表达式expr1值为NULL,则NVL2()函数返回参数表达式expr3的值;如果参数表达式expr1值不为NULL,则NVL2()函数返回参数表达式expr2的值。NVL( string1, replace_with):如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都...原创 2013-07-22 15:32:47 · 83 阅读 · 0 评论 -
Oracle CASE WHEN (zhuan)
1. CASE WHEN 表达式有两种形式--简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他...原创 2013-10-14 15:49:56 · 85 阅读 · 0 评论 -
oracle 外连接易错的地方
两条SQL:1、select * from tab1 left join tab2 on (tab1.size = tab2.size) where tab2.name=’AAA’2、select * from tab1 left join tab2 on (tab1.size = tab2.size and tab2.name=’AAA’)第一条SQL的过程:1、中间表on条...原创 2013-10-14 16:07:31 · 143 阅读 · 0 评论 -
oracle 一些经典sql(转自网络整理)
第一篇--------1.列出至少有一个员工的所有部门。--------- SQL> select dname from dept where deptno in(select deptno from emp); SQL> select dname from dept where deptno in(select deptno from emp group by deptno hav...原创 2013-10-15 10:29:21 · 108 阅读 · 0 评论 -
关于mysql left join
即使你认为自己已对 MySQL 的 LEFT JOIN 理解深刻,但我敢打赌,这篇文章肯定能让你学会点东西!ON 子句与 WHERE 子句的不同一种更好地理解带有 WHERE ... IS NULL 子句的复杂匹配条件的简单方法 Matching-Conditions 与 Where-conditions 的不同关于 “A LEFT JOIN B ON 条件表达式” 的一点提醒...原创 2015-04-14 13:46:40 · 113 阅读 · 0 评论 -
主键与索引区别与联系
系数据库依赖于主键,它是数据库物理模式的基石。主键在物理层面上只有两个用途:惟一地标识一行。作为一个可以被外键有效引用的对象。索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。下面是主键和索引的一些区别与联系。1. 主键一定是唯一性索引,唯一性索引并不一定就是主键。所谓主键就是能够唯一标识表中某一行的属...原创 2015-04-13 16:21:49 · 781 阅读 · 0 评论 -
mysql 不能远程连接
dos下mysql远程连接:mysql -h 远程主机ip -u 用户名 -p远程不能访问解决方法:错误如下:ERROR 1130 (HY000): Host '192.168.1.76' is not allowed to connect to this MySQLserver方案一:[root@lyd php-5.2.17]# mysql...原创 2014-04-14 16:20:59 · 137 阅读 · 0 评论 -
Oracle与MySQL的几点区别
Oracle数据库与MySQL数据库的区别是本文我们主要介绍的内容,希望能够对您有所帮助。1.组函数用法规则mysql中组函数在select语句中可以随意使用,但在oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是group by子句中的列否则报错eg:select name,count(money) from user;这个放在mysql...原创 2015-03-27 13:25:32 · 74 阅读 · 0 评论 -
mysql on using 和传统风格
看看下面三个关联查询的 SQL 语句有何区别?SELECT * FROM film JOIN film_actor ON (film.film_id = film_actor.film_id)SELECT * FROM film JOIN film_actor USING (film_id)SELECT * FROM film, film_actor WHERE film.film...原创 2015-03-20 14:11:02 · 73 阅读 · 0 评论 -
关于oracle 的rownum(收集整理)
Rownum原理:1 Oracle executes your query.1.执行查询操作2 Oracle fetches the first row and calls it row number 1.2.将第一行的row num置为13 Have we gotten past row number meets the criteria? If no, then Oracl...原创 2013-10-17 10:06:36 · 90 阅读 · 0 评论 -
写出高效sql(整理自网络)
一个高效率的数据库系统是从两个方面来评价的:响应时间和吞吐量。 在应用系统开发阶段,由于开发库上的数据比较少,在SQL语句的编写上感觉不出各种写法的性能差异,在将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就会成为最需要解决的主要问题之一。 缩短系统的响应时间,增加操作的并发度,可以提高系统的吞吐量。要缩短系统的响应时间,就需要可以高效率执行的SQL语句。高效SQL语句的基本原...原创 2013-10-16 11:24:42 · 138 阅读 · 0 评论