数据库
文章平均质量分 70
zhongweijian
码农一枚
展开
-
mysql容易被忽略的用法
1.在创建表的同时创建索引 CREATE TABLE material(id INT NOT NULL, name char(40) NOT NULL, resistance INT, INDEX index1(id,name), UNIQUE INDEX index2(name)) 第一个索引,名为index1,由id和name两个字段组成。第二个索引只包含name,并指明name字原创 2009-10-26 21:16:00 · 978 阅读 · 0 评论 -
hsqldb源码分析系列5 查询引擎之查询操作
执行过程先分析select语句的解析过程: select语句的解析集中在ParserDQL类的XreadQueryExpression方法中,其中XreadQueryExpressionBody select除了limit,offset,fetch关键字外的其他条件解析,XreadOrderByExpression是limit,offset,fetch,ordre by的解析,我们分原创 2013-01-19 22:38:06 · 1945 阅读 · 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 local原创 2013-04-07 09:09:54 · 6645 阅读 · 0 评论 -
使用ibatis将数据库从oracle迁移到mysql的几个修改点
我们项目在公司的大战略下需要从oracle迁移到mysql,我们的项目使用的是ibatis,在ibatis层上需要的一些修改点如下:单元测试框架我们用的是jtester。 1. 插入主键生成Oracle insert时主键id是使用sequence方式: SELECT seq_industry_brand_member.nextval FROM DUAL原创 2013-04-29 10:35:53 · 2120 阅读 · 0 评论 -
Mysql 5.5分区特性增强深度解析
原文链接:http://www.javaarch.net/jiagoushi/552.htmMysql 5.5分区特性增强深度解析1.最直观的部分,用非整数列分区 partition by non-integer columns,mysql5.1只支持基于整数列的分区,如果你要用日期 date或者字符串 string,那么你自己需要写一个函数做转换。比如我们看下面一原创 2013-05-22 13:45:41 · 1874 阅读 · 0 评论 -
使用ssd硬盘加速 mysql index查询
使用ssd硬盘加速 mysql index查询更多文章请参考:http://www.javaarch.net/jiagoushi/index.htm 如果数据量比较大,而ssd容量又不是很大,那么可以考虑把index索引数据存到ssd上,把表数据还是存在旧的硬盘上。 那么怎么让mysql把index索引建在ssd上并使用ssd上的index数原创 2013-05-30 18:23:34 · 2888 阅读 · 0 评论 -
Oracle 11G 虚拟列 Virtual Column 介绍
原文链接:http://www.javaarch.net/jiagoushi/705.htmOracle 11G 虚拟列 Virtual ColumnOracle 11G 在表中引入了虚拟列,虚拟列是一个表达式,在运行时计算,不存储在数据库中,不能更新虚拟列的值。定义一个虚拟列的语法: column_name [datatype] [GENERATED ALWAYS] AS [原创 2013-06-02 19:51:00 · 11339 阅读 · 1 评论 -
MySQL 全文搜索支持
原文地址:http://www.javaarch.net/jiagoushi/700.htmMySQL 全文搜索支持从MySQL 4.0以上 myisam引擎就支持了full text search 全文搜索,在一般的小网站或者blog上可以使用这个特性支持搜索。那么怎么使用了,简单看看:1.创建一个表,指定支持fulltext的列 CREATE TABLE articles原创 2013-06-02 16:50:56 · 859 阅读 · 0 评论 -
Oracle删除重复记录的几种方式
原文链接:http://www.javaarch.net/jiagoushi/706.htmOracle删除重复记录的几种方式如果把一个文件多次导入数据库,可能会引入重复记录,那么有哪些方法可以删除重复记录呢? REATE TABLE tbl_test( SER_NO NUMBER, FST_NM VARCHAR2(30), DEPTID NUMBER,原创 2013-06-02 20:26:51 · 1109 阅读 · 0 评论 -
如何重置mysql的密码
原文链接:http://www.javaarch.net/jiagoushi/702.htm如何重置mysql的密码如果知道密码,则通过以下方式修改; gaurav@gaurav:~$ mysql --user=root --pass mysql Enter password: mysql> update user set Password=PASSWORD('new-p原创 2013-06-02 17:34:22 · 6884 阅读 · 0 评论 -
怎么重置mysql的自增列
原文链接:http://www.javaarch.net/jiagoushi/699.htm怎么重置mysql的自增列1. 支持设置自增列的值ALTER TABLE table_name AUTO_INCREMENT = 1;不过这种方式自能设置大于当前使用的值,不能设置小于等于当前已经使用的自增列的值。myisam如果设置小于等于,则自增列的值会自动设原创 2013-06-02 16:42:04 · 7889 阅读 · 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 name] -p[pas原创 2013-06-02 17:09:33 · 9097 阅读 · 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 dbms_random.v原创 2013-06-02 17:35:49 · 994 阅读 · 0 评论 -
Oracle Skip Locked
原文链接:http://www.javaarch.net/jiagoushi/704.htmOracle Skip LockedOracle 11g引入skip locked。Skip Locked 是在query select语句中跳过已经被其他正在执行的query select语句锁住的行,只执行能够获得锁的行。select for update如何查询大数量,那么其他ses原创 2013-06-02 19:29:11 · 6272 阅读 · 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-04 17:40:52 · 4585 阅读 · 0 评论 -
hsqldb源码分析系列6之事务处理
在session的 public Result executeCompiledStatement(Statement cs, Object[] pvals)方法执行中会处理事务 boolean isTX = cs.isTransactionStatement(); if (!isTX) { if (database.logge原创 2013-01-20 15:16:13 · 2179 阅读 · 1 评论 -
hsqldb源码分析系列4 查询引擎之查询操作
查询过程前面解析类似insert,最终调用是在下面这个QuerySpecification类的getSingleResult方法,RangeVariable是查询条件相关 private Result getSingleResult(Session session, int maxRows) { int[] limits = sortAndSlice.getL原创 2013-01-18 00:23:07 · 1491 阅读 · 0 评论 -
linux c++连接mysql示例
编译和连接程序 MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项. 1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项. $ mysql_config --libs 2. --cflags 选项 - 使用必要的include文件的选项等等.原创 2009-11-24 19:12:00 · 7850 阅读 · 3 评论 -
SQL的几个编码规范
1.避免在where子句中对字段施加函数,这样将导致索引失效,比如:select * from user where to_char(create_time,yyyymmdd)=20090101;原因:在建立index的时候是根据字段来建立的,也就是说oracle在inidex的时候是索引的字段的值,如果提供给oracle的是一个需要经过函数处理的比较,oracle就没原创 2010-01-15 13:42:00 · 1026 阅读 · 0 评论 -
mysql查看表的存储引擎等相关信息
mysql> show table status like 'mytable' \G;*************************** 1. row *************************** Name: mytable 表名 Engine: InnoDB 存储引擎伟InnoDB Version原创 2012-05-31 13:38:31 · 6918 阅读 · 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 <= 3select * from原创 2012-06-02 08:28:34 · 1016 阅读 · 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 java.io.*;im原创 2012-06-16 14:41:11 · 14290 阅读 · 0 评论 -
sql反模式分析1
第二章:乱穿马路 2.1 目标:存储多值属性 2.2 反模式:格式化的逗号分隔列表 模糊匹配无法使用索引,影响性能;多表关联麻烦,却极大影响性能;执行聚合查询不方便开发和调试;更新某个字段值必须执行两次;字段内容出错数据很难恢复修正;选择一个用不用到的分隔符,无法确认不适用;列表长度限制; 2.3 解决方案:创建一张交叉表,实现两张表的多对多的关联第三原创 2012-07-21 20:49:55 · 2534 阅读 · 0 评论 -
sql反模式分析2
第八章 多列属性 目标:存储多值属性 为一个bug设置多个标签 反模式:创建多个列,为bugs创建tag1,tag2,tag3几个列保存标签。标签必须放于其中一个。 1.查询数据,比如搜索这三列,可以使用in语句 2.添加和删除 update bugs set tag1=nullif原创 2012-07-22 16:53:55 · 2319 阅读 · 0 评论 -
mysql 帮助文档使用
mysql有很完善的帮助文档,在mysql命令行下可以通过? 或者help 加上命令可以查看改命令的帮助信息,我们查下几个常用的help命令 第一层帮助信息: ? contents;mysql> ? contents;You asked for help about help category: "Contents"For more informatio原创 2012-08-24 13:39:08 · 4473 阅读 · 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,1044原创 2012-08-28 16:29:13 · 37082 阅读 · 0 评论 -
数据库select的默认排序
oracle对无order by的语句返回的结果不进行排序,oracle此时的处理方式是按照数据的物理存储顺序来读取数据。因为rowid是每行数据的地址,所以有时候看起来会像是使用rowid排序的。但这个顺序是可能被打乱的,在表的数据被删除后,rowid会被新插入的数据占用。所以一个无order by查询结果看起来也可能是个杂乱无章的。 Select 语句如果不加 “Or原创 2012-09-07 16:44:47 · 28937 阅读 · 4 评论 -
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.原创 2012-11-08 22:23:35 · 4829 阅读 · 0 评论 -
hsqldb源码分析启动调试
hsqldb是java版的简化数据库,代码量比较少,对于学习数据库的设计是一个比较好的选择,对于derby代码量比较大,mysql c++更复杂,所以就通过学习hsqldb来学习数据库的设计。在这里可以下载到源码http://hsqldb.org/,源码包下org.hsqldb.test有很多的测试类,大家可以从这里开始调试学习hsqldb。 HyperSQL 数据原创 2013-01-17 17:17:59 · 4880 阅读 · 2 评论 -
hsqldb源码分析系列2 解析器分析
在server类的handleConnection方法中处理客户端的输入, 首先调用allowConnection方法检测下客户端ip是否合法,ServerAcl类中可以查看,在server启动输入参数中可以指定acl 黑白名单ip文件,检测代码很简单,这里就不说明了,有兴趣的看下ServerAcl类。 protected boolean allowConnecti原创 2013-01-17 17:17:53 · 3164 阅读 · 0 评论 -
hsqldb源码分析系列3 执行引擎分析 插入过程分析
我们看看insert语句的执行过程, 如果cs.isTransactionStatement()是true,则表示启动事务执行, public Result executeCompiledStatement(Statement cs, Object[] pvals) { Result r; if (abortTransactio原创 2013-01-17 21:38:52 · 2033 阅读 · 0 评论 -
mysql的复制设置详解
原文链接:http://www.javaarch.net/jiagoushi/870.htmmysql的复制设置详解在mysql的master/slave架构中,需要使用replication机制将master的数据复制到slave中,或者在读写分离情况下,需要把写节点的数据复制到读节点中。1.安装mysql从mysql官网http://dev.mysql.com/下载my原创 2013-06-18 09:44:23 · 1469 阅读 · 0 评论