数据库
Clement-Xu
经验总结。
展开
-
MySQL Windows ZIP 免安装版的设置和启动
1、下载Windows (x86, 64-bit), ZIP Archive: 2、解压zip文件 3、复制mysql下的my-default.ini,在同目录下创建my.ini。简单的配置: basedir = D:/mysql-5.6.22-winx64 datadir = D:/mysql-5.6.22-winx64/data character-set-server=utf8原创 2015-03-19 20:04:20 · 4888 阅读 · 0 评论 -
spring-boot配置MySQL数据库连接、Hikari连接池、和Mybatis的简单方法
此方法为极简配置,支持MySQL数据库多库连接、支持Hikari连接池、支持MyBatis(包括Dao类和xml文件位置的配置)。原创 2016-10-27 12:07:03 · 40561 阅读 · 1 评论 -
Linux rpm删除MySQL
简单几步,rpm卸载mysql原创 2016-09-19 11:41:20 · 1935 阅读 · 0 评论 -
MongoDB mongo shell,常用的操作命令,GUI客户端
mongo shell是一个用来连接MongoDB的JavaScript接口,提供给用户查询和操作MongoDB中的数据、以及用来对MongoDB进行管理。启动并自动连接到一个MongoDB实例:缺省安装在“/usr/bin/”中,用“which”命令可以查看到:# which mongo/usr/bin/mongo所以可以直接运行:# mongoMongo原创 2016-02-23 11:30:22 · 4809 阅读 · 0 评论 -
MongoDB安装(Standalone on SUSE、CentOS)
MongoDB提供了几个安装包:mongodb-org:负责安装下面四个包的基础包;mongodb-org-server:包含mongod后台程序、以及相关的配置文件和启动脚本;mongodb-org-mongos:包含mongos后台程序;mongodb-org-shell:包含mongo shell;mongodb-org-tools:包含这些工具:mongoimport bson原创 2016-02-23 11:27:14 · 2057 阅读 · 1 评论 -
MongoDB分片(Sharding)集群(Cluster)
单数据量大或者吞吐量大到一定程度的时候,一个服务器已经无法支撑了——频繁的查询会耗尽CPU资源、不断增多的数据会耗尽硬盘空间、不断增大的工作空间(包括索引)会耗尽内存最终导致虚拟内存(磁盘)的使用、等等。解决的方法就是把数据分布到多个不同的服务器中,如下图所示。具体的实现:MongoDB通过下图所示的分片集群的方法实现:其中:Shard:存储数据的一个分原创 2016-02-19 15:36:21 · 1712 阅读 · 0 评论 -
MongoDB Replication(主从互备)
MongoDB的Replication是一种一主多从的架构,目的是为了备份、错误时自动切换到某一个从机(通过投票机制),也为了支持读写分离、就近读取。一个一主多从的集群叫做一个Replica Set。一个典型的Replica Set的结构如下:或(最小配置):最小配置:一个primary, 一个secondary, 一个arbiter典型配置:一原创 2016-02-19 15:32:28 · 3249 阅读 · 0 评论 -
MongoDB 概要(Overview)
一种开源的文档型数据库,具有高性能、高可用性和自动扩展等特性,由C++实现、开源的。其宣传的最大特点就是agile(轻便、敏捷)和scalable(可扩展)。在某些使用场景,它可以用来取代关系型数据库。官网:https://www.mongodb.org/“mongo”截取自英文俚语humongous,意为”巨大的。主要特点:MongoDB除了比关系型数据库原创 2016-02-19 14:19:16 · 936 阅读 · 0 评论 -
MyBatis使用@MapKey注解接收多个查询记录到Map中,以便方便地用get()方法获取字段的值
需求场景:批量从数据库查出若干条数据,包括id和name两个字段。希望可以把结果直接用Map接收,然后通过map.get(id)方便地获取name的值。问题:如果使用下面的代码,则如果查询结果是多条就会报错,因为MyBatis是把结果以("id":123)、("name":"Jack")的形式保存在Map中的。所以如果返回结果一条包括了id和name的记录就没问题;如果返回多条原创 2016-01-26 19:53:24 · 22631 阅读 · 2 评论 -
MySQL批量update语句优化
对MySQL中的表进行批量update的时候,如果每个记录用一个update语句,5000条记录的话,大概需要30秒钟。下面采用的case when方法可以把5000条update拼成一条:Update myTable SET myField = CASE id WHEN 1 THEN 'value1' WHEN 2 THEN 'value2' WHEN 3原创 2015-11-28 14:34:23 · 12908 阅读 · 0 评论 -
log4j 2.x 打印mybatis select的结果
需要把dao包的log level为trace: 其他关于log4j 2.x的配置请参考:http://blog.csdn.net/clementad/article/details/44625787效果如下:如果Logger name="com.xjj.dao原创 2015-06-29 17:40:58 · 2083 阅读 · 1 评论 -
Spring的多事务配置(多个Transaction Manager)和使用方法
大多数项目只需要一个事务管理器。然而,有些项目为了提高效率、或者有多个完全不同又不相干的数据源,最好用多个事务管理器。机智的Spring的Transactional管理已经考虑到了这一点,首先分别定义多个transactional manager,并为qualifier属性指定不同的值;然后在需要使用@Transactional注解的时候指定TransactionManager的qualifier原创 2015-08-04 13:00:14 · 31719 阅读 · 3 评论 -
MySQL BIGINT UNSIGNED value is out of range... 的问题和解决
MySQL处理两个整数(INT)相减的时候,如果其中有一个是UNSIGNED INT类型的,那么结果就被当做是UNSIGNED的。如果相减的结果是负数:在MySQL 5.5.5之前,结果变成了最大的整数(18446744073709551615)从MySQL 5.5.5开始,这种情况会返回一个错误:BIGINT UNSIGNED value is out of range.原创 2015-08-04 18:26:24 · 18824 阅读 · 0 评论 -
Java连接SQL Server 2000 (version 8)
对于古老的SQL Server 2000,连接方法有点特别。1、下载SQL JDBC 驱动,3.0版 的jar包(一定要3.0版的,4.0版的只能用在SQL server 2005版以上,而且Maven Repository找不到的,只能自己加入本地仓库或直接放入项目中)http://download.csdn.net/detail/clementad/8862363原创 2015-07-02 20:58:35 · 5298 阅读 · 0 评论 -
为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用
HiKariCP是数据库连接池的一个后起之秀,号称性能最好,可以完美地PK掉其他连接池。本文从不同的方面说明其为什么这么优秀,以及在项目中如何配置使用。原创 2015-07-17 15:53:14 · 73183 阅读 · 15 评论 -
使用Navicat的SSH Tunnel和SecureCRT的端口转发功能连接本机IP被禁止访问的远程数据库服务器
为了安全起见,数据库服务器一般只部署在内网;或者如果部署在公网,但只对某些指定的IP开放。但如果数据最终是给公网用户查询的,总会有一条通道可以访问到数据库。下面利用Navicat和SecureCRT实现对两种不同情景下的数据库访问。情景一:数据库服务器在公网开放了SSH服务方法一:利用Navicat的SSH TunnelNavicat中的配置:General原创 2015-03-12 11:40:05 · 7288 阅读 · 0 评论 -
MySQL查询优化
数据库的查询优化有很多事情可以做。下面总结了一些:基本原则:减少数据库查询时发生的磁盘I/O数合理利用索引避免全表遍历、扫描减少网络传输数据量只查询需要的字段如果同时有Group By和Join,尽量先Group By后再Join避免在where语句中使用MySQL函数使用locate(substr, str)代替 like原创 2015-05-29 20:58:05 · 1360 阅读 · 1 评论 -
启用MySQL查询缓存
启用MySQL查询缓存可以极大地减低数据库服务器的CPU使用率,实际使用情况是:开启前CPU使用率120%左右,开启后降到了10%。查看查询缓存情况:mysql> show variables like '%query_cache%'; (query_cache_type 为 ON 表示已经开启)+------------------------------+---原创 2015-07-08 17:42:27 · 14440 阅读 · 0 评论 -
MyBatis循环获取Map中的key和value的方法
有时候需要简单地把一个Map中所有的key和value获取出来,拼到sql语句中。MyBatis提供的一种方法是遍历Map中的entrySet,然后把key扔进index里面,value扔进item中。具体的一个使用的例子如下: INSERT INTO table_name(hot_word, cnt) VALUES #{key}, #{value} ON DU原创 2017-02-14 15:05:54 · 20970 阅读 · 0 评论