数据库
龙之家
希望技术日渐增长
展开
-
数据库优化
如何在高用户量,高并发的情况下,还能保证高效的运行,这是更难于解决的,需要我们下更多功夫所在的地方。 下面从数据库的设计到应用两个方面来提一些作为我们程序员可以改善的地方。 1、设计 1,首先就是范式的灵活运用,一般情况下三范式是我们设计数据库所要遵循的原则。但是我们需要根据实际情况实际对待,有时候适当的冗余字段,减少表之间的连接,反而会大大原创 2015-12-06 18:13:05 · 374 阅读 · 0 评论 -
redis数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。一、String(字符串)string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比原创 2017-06-27 16:54:26 · 401 阅读 · 0 评论 -
redis简介
一、介绍 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、一个高性能的key-value数据库。并提供多种语言的API。说到Key-Value数据库NoSQL数据库可以想到MongoDB。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted s原创 2017-06-27 11:32:35 · 407 阅读 · 0 评论 -
redis配置文件讲解
本文主要对redis的配置文件redis.windows.conf进行介绍,讲解其中一些配置项的含义和使用讲解的配置项如下:(1)timeout 0当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能 (2)loglevel notice指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为not原创 2017-06-27 13:41:59 · 270 阅读 · 0 评论 -
redis发布订阅
redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。redis 客户端可以订阅任意数量的频道channel。第一步:客户端订阅频道channel(lt)同时有两个客户端订阅该频道第二步:向频道lt发布消息发布前两个消息时,有两个客户端订阅,发布第三个消息原创 2017-06-28 14:02:02 · 270 阅读 · 0 评论 -
redis事务
redis 事务可以一次执行多个命令, 事务队列中的所有命令都会序列化、按顺序地执行。一个事务从开始到执行会经历以下三个阶段:开始事务。命令入队。执行事务。实例如下:开启事务:multi执行事务:exec取消事务:discard注意:watch 命令用于监视一个(或多个) key ,如果在事务执原创 2017-06-28 14:33:50 · 212 阅读 · 0 评论 -
redis数据备份和恢复
对于数据库,我们经常需要对其进行备份和数据恢复一、数据备份(1)SAVE 命令用于创建当前数据库的备份。该命令将在 redis 安装目录中创建dump.rdb文件,用于备份数据。(2)备份数据文件也可以使用命令 BGSAVE,该命令在后台执行。二、数据恢复恢复数据,只需将备份文件 (dump.rdb) 移动到 re原创 2017-06-28 15:34:36 · 882 阅读 · 0 评论 -
根据身份证号判断年龄
根据身份证号判断年龄是否符合条件一、java代码 /** * 根据身份证出生日期判断年龄是否符合条件 * @param number 身份证号码 * @param age 年龄条件 * @return */ public static boolean validateAge(String number, int age){ if(!StringUtils.isEm原创 2017-07-17 10:23:40 · 3709 阅读 · 0 评论 -
30 种 SQL 查询语句的优化方法
在参与实际项目中,当 MySQL 表的数据量达到百万级时,普通的 SQL 查询效率呈直线下降,而且如果 where 中的查询条件较多时,其查询速度无法容忍。因此如何提高 SQL 语句查询效率,显得十分重要。查询速度慢的原因1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2、I/O 吞吐量小,形成了瓶颈效应。3、没有创建计算列导致查询不优化原创 2017-10-24 17:18:28 · 740 阅读 · 0 评论 -
mysql学习笔记
1、数据库名称不能修改2、查看表结构:description/desc 表名3、修改字符集修改配置文件:character_set_server = utf8修改数据库字符集:alter database 数据库名 character set utf8;修改表字符集:ALTER TABLE 表名 DEFAULT CHARACTER SET utf8(字符集) COLL原创 2017-12-28 15:39:52 · 301 阅读 · 0 评论 -
Oracle批量插入数据
一条SQL语句批量插入数据到数据库:(1)INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....;(2)多个INSERT INTO VALUEES(各个值);以“;”隔开一同执行以上两种方法Oracle和SQL Server都不支持,MySQL支持 对于Oracle数据库,可以使用以下方法:(1)INSERT ALL INTO 表(字段) VALU...原创 2018-04-25 09:56:29 · 14719 阅读 · 0 评论 -
InnoDB并发如此高,原因竟然在这?
一、并发控制为啥要进行并发控制?并发的任务对同一个临界资源进行操作,如果不采取措施,可能导致不一致,故必须进行并发控制(Concurrency Control)。 技术上,通常如何进行并发控制?通过并发控制保证数据一致性的常见手段有: 锁(Locking) 数据多版本(Multi Versioning) 二、锁如何使用普通锁保证一致性?普通锁,...转载 2018-08-13 11:03:15 · 1113 阅读 · 0 评论 -
MySQL查询语句in子查询的优化
项目中有需要,使用MySQL的in子查询,查询符合in子查询集合中条件的数据,但是没想到的是,MySQL的in子查询会如此的慢,让人无法接收,于是上网搜索解决办法,下面记录下:一、原始in子查询SELECT * FROM basic_zdjbxx WHERE suiji IN ( SELECT zdcode FROM basic_h WHERE zdcode != "" )该查询语句居...原创 2018-08-28 16:16:07 · 68205 阅读 · 10 评论 -
数据库配置文件properties中用户名、密码加密处理
项目中一般都会有数据库配置文件properties,其中用户名和密码一般都是明文存储,这样很不安全,下面介绍几种对用户名和密码进行加密处理的方法一、PropertyPlaceholderConfigurer重写PropertyPlaceholderConfigurer类,覆盖里面的convertProperty方法,对加密的用户名和密码进行解密处理并返回替换xml配置文件中的org.s...原创 2018-09-11 16:54:47 · 6972 阅读 · 0 评论 -
redis的java调用
之前的几篇文章介绍了redis的功能和使用方法,这篇文章主要介绍下在java中如何调用redis一、引入jedis.jar我使用的是maven构建的项目,因此,在pom.xml文件中配置jedis的依赖即可 redis.clients jedis 2.9.0 下载jar包:https://mvnrepository.com/arti原创 2017-06-28 16:30:39 · 590 阅读 · 0 评论 -
建立索引的常用规则
为了加快检索的速度,一般都会给表的字段建立索引,建立索引的一般规则如下:1、表的主键、外键必须有索引;2、数据量超过300的表应该有索引;3、经常与其他表进行连接的表,在连接字段上应该建立索引;4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;5、索引应该建在选择性高的字段上;6、索引应该建在小字段上,对于大的文本字段甚至超长原创 2017-04-01 14:12:19 · 854 阅读 · 0 评论 -
SQL Server分页查询讲解
在项目中,分页显示数据时经常有的功能,但不同数据库的分页查询语句的写法略有不同,今天主要讲解SQL Server的分页查询1、第一种是使用NOT IN关键字。--IN 和 NOT IN,效率较低--查询第11-15条记录,后面的语句即可替换为ADO.NET中执行Command的CommandTextSELECT TOP 5 * FROM LeaveWordView WHER原创 2017-03-24 14:03:05 · 4493 阅读 · 0 评论 -
数据库优化
如何在高用户量,高并发的情况下,还能保证高效的运行,这是更难于解决的,需要我们下更多功夫所在的地方。 下面从数据库的设计到应用两个方面来提一些作为我们程序员可以改善的地方。 一,设计: 1,首先就是范式的灵活运用,一般情况下三范式是我们设计数据库所要遵循的原则。但是我们需要根据实际情况实际对待,有时候适当的原创 2015-12-06 18:16:03 · 311 阅读 · 0 评论 -
MySQL模糊匹配中文查询问题 dbutils
今天遇到一个问题,MySQL中模糊匹配查询(like),使用的是dbutils匹配查询英文、数字(学生id,学号,昵称)时没有问题,但匹配查询中文(学生姓名)时,查询不到结果搞了好久,都没有解决,最后,看到一篇文章说是编码问题,豁然开朗,甚是无语只要加上?characterEncoding=UTF-8&useUnicode=true就可以匹配查询中文了感觉有些问题真的是知道原创 2016-04-22 16:17:14 · 2671 阅读 · 5 评论 -
Spring MVC中JSON无限死循环问题
JSON死循环问题主要是因为两个实体类间有一对多的双向关系,在查询时要查询相关联的类,导致循环查询,无法结束举例如下:两个实体类: Album(相册) 和 photo(照片) 是一对多双向关联死循环原因: JSON无法对Album的photos属性进行JSON转换解决办法: 在Album实体类上加注释@JsonIg原创 2016-06-16 16:06:59 · 3030 阅读 · 0 评论 -
mysql 服务不见了的解决办法
今天打开电脑,mysql突然连接不了,去服务里找,却找不到mysql服务了 ,网上找了好久才找到的,我的版本是5.5的,用的下面那个方法解决方法:1、5.0版本:开始->运行->cmd,进到mysql安装的bin目录D:\MySQL\bin>mysqld-nt.exe -installService successfully installed.这个时候刷新服务列表原创 2016-04-18 17:40:16 · 2561 阅读 · 2 评论 -
数据库——存储过程
数据库——存储过程原创 2015-12-06 19:21:00 · 1015 阅读 · 0 评论 -
SQL语句中的or、in、and
今天做项目需要根据用户输入的信息进行过滤,但不确定是哪个字段的值,因此需要用到查询语句SQL中的or关键字由于第一次使用,不熟悉,导致出现了问题,网上检索后才知道是因为优先级的问题or的优先级比and低,因此sql先执行and再执行or,要想改变执行顺序,需要加括号此外,如果查询的是同一个字段,最好不要使用or连接,可以使用in例如:id in(2,3);原创 2016-07-05 13:11:30 · 6640 阅读 · 0 评论 -
SQL语句中的四舍五入round函数
很多时候,我们需要对数据的结果进行四舍五入操作Math.round()在sql语句中也有这样的函数round(),对查询的结果直接进行四舍五入操作再返回1、ROUND(x)函数返回最接近于参数x的整数,对x值进行四舍五入。例如:ROUND(-4.56)——>-5ROUND(4.56)——>52、ROUND(x,y)函数返回最接近于参数x的原创 2016-07-05 14:29:59 · 7661 阅读 · 0 评论 -
返回JSON数据,懒加载异常的处理
利用hibernate取数据,会遇到数据懒加载的问题,性能不高不说,有时候还会发生异常下面给出解决方法 :1、自定义 ObjectMapper public class HibernateAwareObjectMapper extends ObjectMapper { /** * 解决返回json 懒加载异常 */ private static final原创 2016-07-19 17:55:48 · 3202 阅读 · 0 评论 -
hibernate 的left join fetch可以取出lazy对象
hibernate 的left join fetch可以取出lazy对象 当你在one-to-many的时候,设置lazy=true时,取对象的时候会使用延迟加载。但是你可以使用left join fetch强制取出lazy对象 一个"fetch"连接允许仅仅使用一个选择语句就将相关联的对象或一组值的集合随着他们的父对象的初始化而被初始化,这种方法在使用到集合的情况下尤其有用原创 2016-07-20 11:34:41 · 9693 阅读 · 3 评论 -
MySQL——日期和时间函数
MySQL 获得当前日期时间 函数获得当前日期+时间(date + time)函数:now()mysql> select now();+---------------------+| now() |+---------------------+| 2008-08-08 22:20:46 |+---------------------+获得当前日期+时转载 2016-10-21 11:55:15 · 393 阅读 · 0 评论 -
姓名首字母解析
今天项目中有个需求,根据字母来来匹配用户的姓名,查询出姓名首字母是该字母的用户该功能类似于手机通讯录的功能,快速定位到需要的联系人网上搜索了一下,借鉴了一种思路,下面说下在项目中的具体实现,我主要是在数据库层面进行的实现,具体如下:1、首先定义一个函数fristPinyinCREATE FUNCTION `fristPinyin`(U_NAME VARCHA原创 2016-12-14 21:32:06 · 3178 阅读 · 0 评论 -
Mybatis与Hibernate的详细对比
前言这篇博文我们重点分析一下Mybatis与hibernate的区别,当然在前面的博文中我们已经深入的研究了Mybatis和Hibernate的原理。Mybatis【持久化框架】Mybatis简介与原理【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载Hibernate【SSH进阶之路】Hibernate基本转载 2016-12-02 13:54:23 · 438 阅读 · 0 评论 -
MySQL学习笔记
MySQL学习笔记整理,留有以后查阅/* 启动MySQL */net start mysql/* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码/* 跳过权限验证登录MySQL */mysqld --skip-grant-tables-- 修改root密码密码加密函数password()update m转载 2017-02-28 15:46:01 · 276 阅读 · 0 评论 -
Druid 介绍及配置
1. Druid是什么?Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。2. 在哪里下载druid正式版本下载: maven中央仓库: http://central.maven.org/maven2/com/alibaba/druid/ 3. 怎么获取Druid的源码Druid是一个开源项目,源码托管在github上,源代码仓库地址是 ht...转载 2018-09-17 09:58:14 · 526 阅读 · 0 评论