数据库
文章平均质量分 84
菜鸟笔记
java成长笔记
展开
-
App版本更新时对SQLite数据库升级或者降级遇到的问题
SQLite是Android内置的一个很小的关系型数据库。SQLiteOpenHelper是一个用来辅助管理数据库创建和版本升级问题的抽象类。我们可以继承这个抽象类,实现它的一些方法来对数据库进行自定义操作。下面两个方法必须重写:public void onCreate(SQLiteDatabase db)public void onUpgrade(SQLiteDatabase db, i转载 2016-03-08 17:28:33 · 502 阅读 · 0 评论 -
业界难题-“跨库分页”的四种方案
一、需求缘起分页需求互联网很多业务都有分页拉取数据的需求,例如:(1)微信消息过多时,拉取第N页消息(2)京东下单过多时,拉取第N页订单(3)浏览58同城,查看第N页帖子 这些业务场景对应的消息表,订单表,帖子表分页拉取需求有这样一些特点:(1)有一个业务主键id, 例如msg_id, order_id, tiezi_id转载 2017-03-06 13:58:25 · 986 阅读 · 0 评论 -
MySQL数据库调优技巧
MySQL是一个功能强大的开源数据库。随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限。这里是101条调节和优化MySQL安装的技巧。一些技巧是针对特定的安装环境的,但这些思路是通用的。我已经把他们分成几类,来帮助你掌握更多MySQL的调节和优化技巧。MySQL 服务器硬件和操作系统调节:1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问转载 2017-03-06 14:40:54 · 466 阅读 · 0 评论 -
MySQL按中文排序
今天在工作中遇到MySQL按照中文进行排序的问题,平时也有按照中文进行排序,但是没有具体研究过,这次进行一些总结,方便以后查阅。在处理使用Mysql时,数据表采用utf8字符集,使用中发现中文不能直接按照拼音排序 如果数据表tbl的某字段name的字符编码是latin1_swedish_ciselect * from `tbl` order原创 2017-03-14 23:04:19 · 23326 阅读 · 7 评论 -
MySQL数据库的高可用性分析
MySQL数据库是目前开源应用最大的关系型数据库,有海量的应用将数据存储在MySQL数据库中。存储数据的安全性和可靠性是生产数据库的关注重点。本文分析了目前采用较多的保障MySQL可用性方案。MySQL ReplicationMySQL Replication是MySQL官方提供的主从同步方案,用于将一个MySQL实例的数据,同步到另一个实例中。Replication为保证数据安全转载 2017-03-16 13:53:45 · 887 阅读 · 0 评论 -
mysql主从配置
mysql主从配置。鄙人是在如下环境测试的: 主数据库所在的操作系统:win7 主数据库的版本:5.0 主数据库的ip地址:192.168.1.111 从数据库所在的操作系统:linux 从数据的版本:5.0 从数据库的ip地址:192.168.1.112介绍完了环境,就聊聊配置步骤: 1、确保主数据库与从数据库一模一样转载 2017-04-13 14:16:22 · 348 阅读 · 0 评论 -
Oracle中update关联表
在oracel中修改关联表时,直接上实例:update O o set (o.o1,o.o2,o.o3)=( select d.d1,d.d2,d.d3 from D d where o.o4=d.d4 ) where exists( select 1 from D d where o.o4=d.d4)这是原创 2017-07-10 15:10:16 · 4504 阅读 · 0 评论 -
oracel中批量插入数据
在oracel中批量添加测试数据,可以通过loop循环实现添加数据。实例:declarei number;begin for i in 1..100 loop insert into settle_detail values(i,'',i,i,'00000','跑批测试','00000'); end loop;end;在表中原创 2017-06-21 10:34:52 · 1436 阅读 · 0 评论 -
oracle中的exists 和not exists 用法详解
有两个简单例子,以说明 “exists”和“in”的效率问题1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T1时,1) 的查询效率高。2) select * from T1 where T1.a in (select T2.a from T2)转载 2017-06-21 15:11:26 · 451 阅读 · 0 评论 -
Oracle之SQL语句性能优化(34条优化方法)
好多同学对sql的优化好像是知道的甚少,最近总结了以下34条仅供参考。(1)选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询,转载 2017-06-21 17:01:15 · 444 阅读 · 0 评论 -
Mybatis 调用oracle存储过程的方法介绍
1:调用无参数的存储过程。创建存储过程:Mapper.xml 配置:经测试其他标签(update、insert、select)也可以。Mapper.javaMapperTest.java 测试 2:有参数的存储过程调用:2.1存储过程的创建: 2.2Mapper.xml 的配置:2.3Mapper.java2.4MapperTes转载 2017-07-04 09:58:15 · 1084 阅读 · 0 评论 -
使用存储过程将Oracle数据批量导出为多个csv文件
数据库有如下表结构:aaa ( obj_id NUMBER, (Primary Key) obj_name VARCHAR2(80), obj_size NUMBER NOT NULL obj_time NUMBER NOT NULL转载 2017-08-30 16:46:19 · 3639 阅读 · 0 评论 -
如何通过Mysql的二进制日志恢复数据库数据
经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响。所以本文我们将和大家一起分享学习下如何通过Mysql的二机制日志(binlog)来恢复数据。 系统环境:操作系统:CentOS 6.5 X64 (虚拟机);WEB服务:PHP+Mysql+apache;网站:为方便,直接在本地搭建一个DEMO站点;转载 2017-09-30 16:24:23 · 613 阅读 · 0 评论 -
数据库事务的四大特性以及事务的隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consi...转载 2018-03-02 14:20:48 · 267 阅读 · 0 评论 -
mysql实用总结
MySQL 5.7版本中实用功能总结,有些功能低版本也可以使用。1.GROUP_CONCAT(fieldName)将分组中每个字段的值显示出来SQL : SELECT t.user_id,GROUP_CONCAT(bank_name) from account t GROUP BY t.user_id查询结果如下:2.WITH ROLLUP在所有查询出的分组记录之后增加一条记录,该记录计算查询出的...原创 2018-06-11 10:58:57 · 469 阅读 · 0 评论 -
用mybatis往oracle批量插入数据报错java.lang.StackOverflowError
往oracle中批量插入10000条数据,报错如下java.lang.StackOverflowError at java.util.HashMap.hash(HashMap.java:362) at java.util.HashMap.getEntry(HashMap.java:462) at java.util.HashMap.get(HashMap.java:417) at com.alib...原创 2018-06-07 10:22:07 · 4314 阅读 · 4 评论 -
oracle数据库查看表空间默认大小及使用情况总结
oracle查询数据库的默认表空间情况操作步骤如下: 1. 查询用户对应的表空间,我们可以看到针对不同的数据库用户Oracleselect username, default_tablespace, temporary_tablespace from dba_users; 2. 查询用户的对应的数据文件,以及数据文件大小select tablespace_name, f...原创 2018-12-10 13:10:04 · 10767 阅读 · 0 评论 -
Centos7中MySQL的安装并设置开机启动
CentOS 7不带Mysql数据库了,默认的数据库是MariaDB(Mysql的一个分支)。可以按照以下步骤手动安装Mysql数据库。1.首先检查系统中是否安装有mysqlrpm -qa | grep mysql如果返回空值,说明没有安装MySQL2.下载mysql的repo源 如果提示没有wget命令,可以使用 yum install -y wget安装wge...原创 2018-12-27 00:05:51 · 18544 阅读 · 2 评论 -
MySQL delete数据时不支持表别名
今天执行一条删除的SQL语句执行出错的问题 SQL语句如下:DELETE FROM userInfo as t WHERE t.userId='4028812348f28b890148f29253a80000'在MySQL数据库中执行时就出现了如下的错误:[Err] 1064 - You have an error in your SQL syntax; chec原创 2016-12-13 10:03:40 · 4675 阅读 · 8 评论 -
Mysql区分大小写(大小写敏感)的问题总结
MySQL默认是不区分大小写的,但是在很多情况下需要大小敏感,以下总结了多种设置MySQL大小写敏感的方法。方法一:修改MySql Server安装目录下的 my.ini 文件,在mysqld节下加入下面一行 set-variable=lower_case_table_names=0 (0:大小写敏感;1:大小写不敏感)最后重启一下MySql服务即可。方法二:原创 2016-10-26 11:21:29 · 40894 阅读 · 1 评论 -
Android 判断数据库中是否存在某个表
[java] view plain copy "margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Arial; font-size:14px; line-height:26px">"code" class="java">public boolean转载 2016-03-08 17:50:27 · 4263 阅读 · 0 评论 -
sqlite实例
SQLite是Android平台软件开发中会经常用到的数据库产品,作为一款轻型数据库,SQLite的设计目标就是是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够。 废话不多说,让我们来写一个sqlite的demo。 首先建立一个项目 目录如下:转载 2016-04-28 17:01:18 · 1065 阅读 · 0 评论 -
Mysql各种类型字段长度
列类型 需要的存储量 TINYINT 1 字节SMALLINT 2 个字节MEDIUMINT 3 个字节INT转载 2016-06-01 15:10:52 · 4102 阅读 · 0 评论 -
SQL SERVER2008数据库导入MySQL数据库
开发中需要把SQL server2008的数据库导入MySQL中进行开发,在网上搜索了很多相关的资料,并成功实现了SQL server 数据库导入MySQL数据库。并作出以下总结:1. 首先,配置SQL server2008数据库允许远程连接单击Windows的"开始",依次选择"所有程序"、"Microsoft SQL Server 2008",然后单击“SQL Server M原创 2016-06-05 09:24:40 · 13387 阅读 · 2 评论 -
关于druid数据连接池抛出的 connection holder is null 异常
大概跑了三十分钟~~~这配置~~~这程序~~~ 然后华丽丽的报异常了~~~ 具体异常是这样的,?12345678910111213DEBUG: (BaseJdbcLogger.java:132) ooo Usi转载 2016-07-12 15:23:06 · 7935 阅读 · 0 评论 -
Druid连接池在spring中的配置
项目中使用druid监控数据库的情况,可以根据实际情况对数据库sql进行优化,提高系统的运行速度。首先,需要下载所需要的jar包 com.alibaba druid 1.0.22在项目中的配置详情1.web.xml2.spring-druid配置init-method="init" d原创 2016-07-13 10:22:23 · 7119 阅读 · 0 评论 -
Mysql里的JSON系列操作函数
新版 Mysql 中加入了对 JSON Document 的支持,可以创建 JSON 类型的字段,并有一套函数支持对JSON的查询、修改等操作,下面就实际体验一下创建带有 JSON 字段的表比如一个‘文章’表,字段包括id、标题 title、标签 tags一篇文章会有多个标签,tags 就可以设为 JSON 类型建表语句如下:CREATE TABLE `转载 2016-07-26 09:57:06 · 30790 阅读 · 1 评论 -
浅谈MySQL中优化sql语句查询常用的30种方法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中使用!=或3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中转载 2016-07-06 14:19:22 · 1043 阅读 · 0 评论 -
MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数的用法
在应用时,经常要使用这两个函数TIMESTAMPDIFF和TIMESTAMPADD。一,TIMESTAMPDIFF语法:TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。说明:返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval转载 2016-07-06 16:42:35 · 813 阅读 · 0 评论 -
Mysql 5.7 的‘虚拟列’是做什么?
Mysql 5.7 中推出了一个非常实用的功能虚拟列 Generated (Virtual) Columns对于它的用途,我们通过一个场景来说明假设有一个表,其中包含一个 date 类型的列`SimpleDate` dateSimpleDate 是一个常用的查询字段,并需要对其执行日期函数,例如SELECT ... WHERE dayofweek(Simpl转载 2016-08-16 09:08:49 · 23871 阅读 · 3 评论 -
详解MySQL大表优化方案
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化、字段、索引、查询SQL、引擎等。转载 2016-08-04 18:00:53 · 5212 阅读 · 0 评论 -
MySQL字符串函数substring:字符串截取(修改)
MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活。1. 字符串截取:left(str, length)mysql> select left('exam原创 2016-08-05 10:34:30 · 14198 阅读 · 0 评论 -
You can't specify target table tableName for update in FROM clause
mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。 例如下面这个sql:update user_info set duty = '' where userId IN(select userId from user_info原创 2016-08-02 15:59:17 · 555 阅读 · 0 评论 -
HQL总结
HQL: Hibernate查询语言Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。 第 15 章 HQL: Hibernate查询语言Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法原创 2016-08-03 09:28:54 · 983 阅读 · 0 评论 -
MYSQL 解锁与锁表
解锁第一种show processlist;找到锁进程,kill id ; 第二种mysql>UNLOCK TABLES;锁表锁定数据表,避免在备份过程中,表被更新mysql>LOCK TABLES tbl_name READ;为表增加一个写锁定:mysql>LOCK TABLES tbl_name WRITE转载 2016-08-18 12:50:51 · 336 阅读 · 0 评论 -
MySQL两行数据合并一行sql
MySQL中把两行数据合并成一行:select username,group_concat(userid) as re_id from tablename group by userid原创 2016-08-31 14:56:34 · 13335 阅读 · 0 评论 -
Mysql字符串字段判断是否包含某个拼接字符串的2种方法
方法一:利用MySQL 字符串函数 find_in_set()函数SELECT * FROM user_info WHERE find_in_set('[email protected]', sina);SELECT * FROM userInfo WHERE and LOCATE(userId,'0006f7c7c4db48389147a1f5cf15e0ad,0009e原创 2016-10-21 16:59:38 · 2346 阅读 · 0 评论 -
MySQL中不等号索引问题
最近在使用MySQL中的一个小总结。在MySQL中,不等号<>在主键字段和唯一索引字段中会走索引,在普通索引的字段上不会走索引。 1.当不等号<>作用在普通索引字段上 表信息:使用explain查看普通索引字段,没有走索引2.当不等号<>作用在主键索引字段上 使用explain查看主键索引字段,走索引。 3...原创 2019-01-31 17:22:06 · 14904 阅读 · 3 评论