数据库 mysql&oracle
文章平均质量分 66
zhongweij
这个作者很懒,什么都没留下…
展开
-
hsqldb源码分析系列6之事务处理
在session的 public Result executeCompiledStatement(Statement cs, Object[] pvals)方法执行中会处理事务 boolean isTX = cs.isTransactionStatement(); if (!isTX) { if (databa...2013-01-20 15:20:49 · 362 阅读 · 0 评论 -
Oracle Skip Locked
原文链接:http://www.javaarch.net/jiagoushi/704.htm Oracle Skip LockedOracle 11g引入skip locked。Skip Locked 是在query select语句中跳过已经被其他正在执行的query select语句锁住的行,只执行能够获得锁的行。select for update如何查询大数量...原创 2013-06-04 09:30:48 · 137 阅读 · 0 评论 -
各个数据库获取随机列的语法
原文链接:http://www.javaarch.net/jiagoushi/703.htm 各个数据库获取随机列的语法MySQL SELECT column FROM table ORDER BY RAND() LIMIT 10Oracle SELECT column FROM( SELECT column FROM table ORDER BY db...原创 2013-06-04 09:30:36 · 108 阅读 · 0 评论 -
如何重置mysql的密码
原文链接:http://www.javaarch.net/jiagoushi/702.htm 如何重置mysql的密码如果知道密码,则通过以下方式修改; gaurav@gaurav:~$ mysql --user=root --pass mysql Enter password: mysql> update user set Password=PA...原创 2013-06-04 09:30:12 · 173 阅读 · 0 评论 -
使用Mysqldump 备份数据库
原文地址:http://www.javaarch.net/jiagoushi/701.htm 使用Mysqldump 备份数据库1.备份一个数据库 mysqldump --user [user name] --password=[password] [database name] > [dump file] or mysqldump -u[user ...原创 2013-06-04 09:29:15 · 116 阅读 · 0 评论 -
MySQL 全文搜索支持
原文地址:http://www.javaarch.net/jiagoushi/700.htm MySQL 全文搜索支持从MySQL 4.0以上 myisam引擎就支持了full text search 全文搜索,在一般的小网站或者blog上可以使用这个特性支持搜索。那么怎么使用了,简单看看:1.创建一个表,指定支持fulltext的列 CREATE TABL...原创 2013-06-03 00:06:41 · 117 阅读 · 0 评论 -
怎么重置mysql的自增列
原文链接:http://www.javaarch.net/jiagoushi/699.htm 怎么重置mysql的自增列1.支持设置自增列的值ALTER TABLE table_name AUTO_INCREMENT = 1;不过这种方式自能设置大于当前使用的值,不能设置小于等于当前已经使用的自增列的值。myisam如果设置小于等于,则自增列的值会自动设置为当前最大值加1。innodb...原创 2013-06-03 00:06:23 · 290 阅读 · 0 评论 -
使用ssd硬盘加速 mysql index查询
使用ssd硬盘加速 mysql index查询 更多文章请参考:http://www.javaarch.net/jiagoushi/index.htm 如果数据量比较大,而ssd容量又不是很大,那么可以考虑把index索引数据存到ssd上,把表数据还是存在旧的硬盘上。 那么怎么让mysql把index索引建在ssd上并使用ssd上的index数据呢? 1.在s...2013-05-30 18:28:35 · 175 阅读 · 0 评论 -
mysql修改表默认字符集可能带来的隐患
原文链接:http://www.javaarch.net/jiagoushi/627.htm mysql修改表默认字符集可能带来的隐患 我们在建表后如果后续需要修改表的默认字符集,可以通过ALTER TABLE来修改表的默认编码 1. ALTER TABLE tablename DEFAULT CHARACTER SET utf8; 但是这样有个问题,只改了...2013-05-29 13:28:25 · 976 阅读 · 0 评论 -
Oracle 11G 虚拟列 Virtual Column介绍
原文链接:http://www.javaarch.net/jiagoushi/705.htm Oracle 11G 虚拟列 Virtual ColumnOracle 11G 在表中引入了虚拟列,虚拟列是一个表达式,在运行时计算,不存储在数据库中,不能更新虚拟列的值。定义一个虚拟列的语法: column_name [datatype] [GENERATED ALW...原创 2013-06-04 09:31:06 · 156 阅读 · 0 评论 -
Oracle删除重复记录的几种方式
原文链接:http://www.javaarch.net/jiagoushi/706.htm Oracle删除重复记录的几种方式如果把一个文件多次导入数据库,可能会引入重复记录,那么有哪些方法可以删除重复记录呢? REATE TABLE tbl_test( SER_NO NUMBER, FST_NM VARCHAR2(30), DEPTID...原创 2013-06-05 09:26:10 · 109 阅读 · 0 评论 -
分布式唯一主键生成策略的一种开销比较小的方法
原文链接:http://www.javaarch.net/jiagoushi/709.htm 分布式唯一主键生成策略的一种开销比较小的方法分布式场景下,经常需要做分库分表,master和master结构,那么此时就会用到全局的唯一主键id。如果使用mysql的分区策略,master到master的复制,那么此时就需要保证分区的唯一性避免主键冲突。我们可以使用mysql的...原创 2013-06-05 09:26:37 · 129 阅读 · 0 评论 -
hsqldb源码分析系列5 查询引擎之查询操作
执行过程先分析select语句的解析过程: select语句的解析集中在ParserDQL类的XreadQueryExpression方法中,其中XreadQueryExpressionBody select除了limit,offset,fetch关键字外的其他条件解析,XreadOrderByExpression是limit,offset,fetch,ordre by...2013-01-18 17:27:30 · 346 阅读 · 0 评论 -
hsqldb源码分析系列4 查询引擎之查询操作
查询过程前面解析类似insert,最终调用是在下面这个QuerySpecification类的getSingleResult方法,RangeVariable是查询条件相关 private Result getSingleResult(Session session, int maxRows) { int[] limits = sortAndSl...原创 2013-01-18 00:27:51 · 244 阅读 · 0 评论 -
hsqldb源码分析系列3 执行引擎分析 插入过程分析
我们看看insert语句的执行过程, 如果cs.isTransactionStatement()是true,则表示启动事务执行, public Result executeCompiledStatement(Statement cs, Object[] pvals) { Result r; if (abortTr...2013-01-17 21:43:17 · 294 阅读 · 0 评论 -
hsqldb源码分析系列2 解析器分析
在server类的handleConnection方法中处理客户端的输入, 首先调用allowConnection方法检测下客户端ip是否合法,ServerAcl类中可以查看,在server启动输入参数中可以指定acl 黑白名单ip文件,检测代码很简单,这里就不说明了,有兴趣的看下ServerAcl类。 protected boolean allowConne...原创 2013-01-17 17:22:31 · 162 阅读 · 0 评论 -
hsqldb源码分析启动调试
hsqldb是java版的简化数据库,代码量比较少,对于学习数据库的设计是一个比较好的选择,对于derby代码量比较大,mysql c++更复杂,所以就通过学习hsqldb来学习数据库的设计。在这里可以下载到源码http://hsqldb.org/,源码包下org.hsqldb.test有很多的测试类,大家可以从这里开始调试学习hsqldb。 HyperSQL 数据库...原创 2013-01-17 17:22:19 · 203 阅读 · 0 评论 -
mysql的复制设置详解
原文链接:http://www.javaarch.net/jiagoushi/870.htm mysql的复制设置详解在mysql的master/slave架构中,需要使用replication机制将master的数据复制到slave中,或者在读写分离情况下,需要把写节点的数据复制到读节点中。1.安装mysql从mysql官网http://dev.my...2013-06-18 09:44:39 · 121 阅读 · 0 评论 -
数据库select的默认排序
oracle对无order by的语句返回的结果不进行排序,oracle此时的处理方式是按照数据的物理存储顺序来读取数据。因为rowid是每行数据的地址,所以有时候看起来会像是使用rowid排序的。但这个顺序是可能被打乱的,在表的数据被删除后,rowid会被新插入的数据占用。所以一个无order by查询结果看起来也可能是个杂乱无章的。 Select 语句如果不加 “Order ...2012-09-07 16:42:21 · 795 阅读 · 0 评论 -
MySQL Events详解
原文链接:http://www.javaarch.net/jiagoushi/751.htmMySQL Events详解MySQL Events是能够在特定时间执行的query语句集合。首先要开启mysql events SHOW VARIABLES LIKE "EVENT_SCHEDULER"; SET GLOBAL event_scheduler=ON;...原创 2013-06-06 12:28:14 · 158 阅读 · 0 评论 -
Mysql 5.5分区特性增强深度解析
原文链接:http://www.javaarch.net/jiagoushi/552.htm Mysql 5.5分区特性增强深度解析1.最直观的部分,用非整数列分区 partition by non-integer columns,mysql5.1只支持基于整数列的分区,如果你要用日期 date或者字符串 string,那么你自己需要写一个函数做转换。比如我...2013-05-22 13:49:38 · 82 阅读 · 0 评论 -
oracle ORA-01704: string literal too long问题分析
今天使用sql在oracle直接insert update一个表时,出现ORA-01704: string literal too long的错误,我们的sql是update mall_config a set a.category_info='|标准件:1040140,1035382,1036586,1035383,1032451,1032469,141903,1036587,104404...2012-08-28 16:04:48 · 5284 阅读 · 0 评论 -
mysql 帮助文档使用
mysql有很完善的帮助文档,在mysql命令行下可以通过? 或者help 加上命令可以查看改命令的帮助信息,我们查下几个常用的help命令 第一层帮助信息: ? contents; mysql> ? contents;You asked for help about help category: "Contents"For more informati...2012-08-24 11:42:11 · 147 阅读 · 0 评论 -
SQL的几个编码规范
1.避免在where子句中对字段施加函数,这样将导致索引失效,比如:select * from user where to_char(create_time,'yyyymmdd')='20090101';原因:在建立index的时候是根据字段来建立的,也就是说oracle在inidex的时候是索引的字段的值,如果提供给oracle的是一个需要经过函数处理的比较,oracle就没办法...2010-01-15 13:42:00 · 131 阅读 · 0 评论 -
ibatis中动态查询返回字段返回用resultClass="java.util.HashMap" 的问题
org.springframework.jdbc.BadSqlGrammarException: SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in jndi:/...2010-03-25 14:33:54 · 369 阅读 · 0 评论 -
ibatis dynamic条件语句问题
ibatis 的dynamic这样写会有问题,如果有条件成立,出现where 后面会少一个and,这是因为ibatis的dynamic语句会默认把第一个条件成立的predend字段去掉,比如如果下面两个条件都成立,那么最终的语句会变成where status=status的值 and name=name的值,where<dynamic prepend=" "> <isNo...2009-12-09 21:04:00 · 336 阅读 · 0 评论 -
mysql编码问题
首先设置mysql的编码为utf8在linux下修改3个my.cnf的1个/etc/mysql /my.cnf文件 找到客户端配置[client] 在下面添加 default-character-set=utf8 默认字符集为utf8 在找到[mysqld] 添加 default-character-set=utf8 默认字符集为utf8 init_connect='S...2009-11-29 16:21:03 · 90 阅读 · 0 评论 -
Error parsing XML. org.xml.sax.SAXParseException: Element type "sqlMapConfig" m
ibatis出现这个错误需要把头部[code="xml"] [/code] 改为[code="xml"] [/code]2009-11-29 16:15:43 · 129 阅读 · 0 评论 -
oracle 定长字段查询问题 ,ibatis 与pl/sql查询的char类型字段查询不同
如果oracle中的表字段name,类型为char(2), 如果表中的记录name='1',那么pl/sql查询where条件中name='1', 或者name='1 ', 1后面有任意个空格,pl/sql默认都先去除空格做比较,但是jdbc和ibatis中会以定长度比较,也就是 如果name='1',但是name是两个字符固定长度的,这时查询记录会为空, 查询时必须对name字段先去除空格,用 ...2009-11-29 16:03:49 · 162 阅读 · 0 评论 -
linux c++连接mysql示例
编译和连接程序 MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项. 1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项. $ mysql_config --libs 2. --cflags 选项 - 使用必要的include文件的选项等等...2009-11-24 19:12:00 · 156 阅读 · 0 评论 -
mysql编码问题
首先设置mysql的编码为utf8在linux下修改3个my.cnf的1个/etc/mysql/my.cnf文件找到客户端配置[client] 在下面添加default-character-set=utf8 默认字符集为utf8在找到[mysqld] 添加default-character-set=utf8 默认字符集为utf8init_connec...2009-11-11 18:54:00 · 143 阅读 · 0 评论 -
ibatis中字段名问题
ibatis中返回的字段名都是大写,即使在ibatis的sqlmap配置文件中写的是小写,ibatis都把所有的字段名都转为大写。2009-08-31 17:16:00 · 135 阅读 · 0 评论 -
oracle错误分析:ORA-01791:不是SElECTed表达式
query="select distinct dwbm,area_no,dwmc,role_no,zgbm_no from s_mtab where role_no between 2 and 3 and (substr(zgbm_no,1,4)='6101' or dwbm=6101) and area_no is not null order by area_no "; 莫名其妙的...原创 2010-12-13 13:32:51 · 279 阅读 · 0 评论 -
mysql 常用的有用命令2
show create table mytable;show index from mytable;show culumn from mytable;show privileges;show variables;show global variables;show session variables;select current_user;...原创 2011-08-30 16:16:12 · 94 阅读 · 0 评论 -
mysql NDB的安装配置使用示例
1.到mysql网站下载mysql cluster版本 http://www.mysql.com/downloads/cluster/ 下载到/home/weijianzhongwj/software下2.安装mysql cluster cd /home/weijianzhongwj/software tar xvf mysql-cluster-gpl-7.2.8-linux2...原创 2012-11-08 22:53:51 · 133 阅读 · 0 评论 -
mysql常用监控脚本命令列表
#/bin/sh#检测mysql server是否正常提供服务mysqladmin -u sky -ppwd -h localhost ping#获取mysql当前的几个状态值mysqladmin -u sky -ppwd -h localhost status#获取数据库当前的连接信息mysqladmin -u sky -ppwd -h localhost...原创 2013-04-07 09:15:02 · 148 阅读 · 0 评论 -
sql反模式分析2
第八章 多列属性 目标:存储多值属性 为一个bug设置多个标签 反模式:创建多个列,为bugs创建tag1,tag2,tag3几个列保存标签。标签必须放于其中一个。 1.查询数据,比如搜索这三列,可以使用in语句 2.添加和删除 update bugs set tag1=nul...2012-07-22 16:57:29 · 101 阅读 · 0 评论 -
sql反模式分析1
第二章:乱穿马路 2.1 目标:存储多值属性 2.2 反模式:格式化的逗号分隔列表 模糊匹配无法使用索引,影响性能;多表关联麻烦,却极大影响性能;执行聚合查询不方便开发和调试;更新某个字段值必须执行两次;字段内容出错数据很难恢复修正;选择一个用不用到的分隔符,无法确认不适用;列表长度限制; 2.3 解决方案:创建一张交叉表,实现两张表的多对多的关联第三章:单纯的...原创 2012-07-21 20:52:58 · 97 阅读 · 0 评论 -
mysql blob字段存储图片操作示例
表结构:create table view(id int unsigned NOT NULL AUTO_INCREMENT, catid int,title varchar(256),picture MEDIUMBLOB, content TEXT,PRIMARY KEY (id)); java类操作:import java.awt.Image;import j...2012-06-16 14:46:01 · 215 阅读 · 0 评论 -
oracle/mysql TOP/Button N查询
oracle里面要获取每个分组里面的topN可以采用: select *from (select emp_id, name, occupation, rank() over ( partition by occupation order by emp_id) rank from employee)where rank <= 3sele...原创 2012-05-21 20:36:27 · 105 阅读 · 0 评论