数据库
文章平均质量分 96
c.
这个作者很懒,什么都没留下…
展开
-
Oracle物化视图与物化视图日志
文章目录物化视图物化视图与普通视图的区别创建一个存放person的表创建一个存放person的address的表初始化数据创建物化视图的语句1.build [immediate|deferred]2.refresh [fast|complete|force] 视图刷新的方式:3.MV数据刷新的时间:4.查询重写(QueryRewrite)演示 refresh complete on demand演......原创 2019-04-02 21:43:30 · 24197 阅读 · 7 评论 -
使用Druid SQL Parser解析SQL
在以前的博文《使用Spring Boot JPA Specification实现使用JSON数据来查询实体数据》中讲到了目前业务上的需求就是以前老系统是通过配置SQL去抽取一些业务数据的,但现在新系统想通过页面的一些配置化实现跟配置SQL一样去抽取数据。所以在之前的博文讲到了如何利用JPA Specification和构造的JSON数据去抽取数据。但是老系统很多历史数据都是用SQL去配置的,这些配置当然需要迁移到新系统,但是我们不可能手工一条条去把这些SQL转成当前的JSON结构,这样太浪费时间了。所以我的原创 2022-06-16 16:12:28 · 14056 阅读 · 0 评论 -
MySQL-InnoDB-MVCC多版本并发控制
文章目录MySQL-InnoDB-MVCC多版本并发控制为什么需要有MVCC?什么是当前读和快照读?快照读当前读MVCC 的实现原理三个隐藏的字段Undo Log记录链图解Read View 读视图MVCC的整体流程RR级别下和RC级别下 Read View生成的时机总结本文简单总结参考MySQL-InnoDB-MVCC多版本并发控制InnoDB is a multi-version storage engine. It keeps information about old versions of原创 2022-05-06 11:21:22 · 466 阅读 · 0 评论 -
什么是脏读、不可重复读、幻读?一文带你快速搞定MySQL事务隔离级别
文章目录什么是脏读、不可重复读、幻读?一文带你快速搞定MySQL事务隔离级别事务ACID四个特性原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)事务隔离级别多个事务并发执行时引发的问题脏读不可重复读幻读MySQL四个事务隔离级别参考什么是脏读、不可重复读、幻读?一文带你快速搞定MySQL事务隔离级别事务既然要讲事务隔离级别,那我们肯定要来先说一下事务这个概念。那什么是事务呢?我们可以看到oracle的解释是:A transa原创 2021-10-24 00:19:08 · 353 阅读 · 0 评论 -
五分钟了解一下MySQL的体系结构
文章目录MySQL体系结构Client connectorMySQL ServerConnection poolService utilitiesSQL 层SQL interface解析器(Parser)优化器(Optimizer)缓存(Cache)存储引擎物理存储层参考MySQL体系结构下图来自《MySQL技术内幕(InnoDB存储引擎)第2版》书中的图:然后我们根据这个图来讲解一下每个部分的功能和作用。Client connector首先我们可以看到最上面的 connector部分负责处理原创 2021-08-30 16:16:46 · 283 阅读 · 0 评论 -
五分钟告诉你什么是MySQL的覆盖索引
文章目录五分钟告诉你什么是MySQL的覆盖索引覆盖索引总结参考五分钟告诉你什么是MySQL的覆盖索引前面我们已经对MySQL索引底层原理多少有一定的了解了,还不是很了解的小伙伴可以看我之前的博文:《不会吧不会吧,难道还有人不了解MySQL索引底层原理?》 和 《MySQL底层为什么要选用B+树作为索引的数据结构呢?》其实在之前的博文中也提到了覆盖索引啦,然后今天就单独把这个拿出来讲一讲这个MySQL的性能优化: 覆盖索引。覆盖索引覆盖索引:SQL只需要通过索引就可以返回查询所需要的数据,而不必通原创 2021-08-12 22:32:16 · 7256 阅读 · 0 评论 -
不会吧不会吧,难道还有人不了解MySQL索引底层原理?
文章目录MySQL索引底层原理什么是索引?索引的优点索引的缺点索引分类索引的底层原理索引数据结构选择MyISAM存储引擎和InnoDB存储引擎索引B+树的区别InnoDB索引B+树详解聚簇索引和非聚簇索引聚簇索引需要注意什么?为什么不推荐主键使用UUID?最左前缀原理MySQL是如何选择最优索引的?覆盖索引总结参考MySQL索引底层原理什么是索引?之前我们也讲过了(我的上面一篇博文中提到的关于索引数据结构的选择),索引就是一种帮助mysql提高查询效率的数据结构,而且重点是排好序的数据结构索引的优点原创 2021-08-11 22:38:45 · 971 阅读 · 2 评论 -
MySQL底层为什么要选用B+树作为索引的数据结构呢?
文章目录MySQL底层为什么要选用B+树作为索引的数据结构呢?MySQL 索引底层数据结构选型哈希表(Hash)二叉查找树(BST)平衡二叉树(AVL树)红黑树B-树B+树参考MySQL底层为什么要选用B+树作为索引的数据结构呢?MySQL我想是大家平时都会用到的数据库了,我们平时优化SQL的执行速度往往都是加索引就完事了,管他的看执行计划然后加索引。那我们想过我们加索引其实加的是什么东西吗,为什么加索引能够帮我们优化查询速度呢。其实这就跟查字典一个道理了,如果我们想查一个字,在没有目录的情况下,我们就原创 2021-07-22 16:48:21 · 787 阅读 · 0 评论 -
Oracle数据库开发必备利器之PL/SQL基础——异常
异常异常是程序设计语言提供的一种功能,用来增强程序的健壮性和容错性。Oracle中的异常系统异常自定义异常系统异常1.No_date_found(没有找到数据) 2.Too_many_rows (select…into语句匹配多个行) 3.Zero_Divide (被零除) 4.Value_error (算术或转换错误) 如:负数在实数范围开平方,abc字符串...原创 2018-08-24 22:07:33 · 296 阅读 · 0 评论 -
Oracle数据库开发必备利器之PL/SQL基础——游标
游标游标:就是一个结果集CURSOR 光标名[(参数名 数据类型[,参数名 数据类型]...)]IS SELECT 语句;例如 cursor c1 is select ename from emp;从游标中取值1.打开游标: open c1;打开光标执行查询 2.关闭游标: close c1;关闭游标释放资源 3.取一行光标的值: fetch c1 into p...原创 2018-08-23 22:46:13 · 369 阅读 · 0 评论 -
Oracle数据库开发必备利器之PL/SQL基础——PL/SQL基础语法
PL/SQL基础语法PL/SQL的程序结构declare 说明部分 (变量说明、光标申明、 错误说明)begin 语句序列 (DML语句)exception 错误处理语句end;/PL/SQL基本变量类型定义基本变量或常量类型:char,varchar2,date,number,boolean,long 例: pname varcha...原创 2018-08-21 22:07:33 · 2111 阅读 · 0 评论 -
Oracle数据库开发必备利器之PL/SQL基础——PL/SQL简介和第一个PL/SQL程序
什么是PL/SQLPL/SQL:procedure Language/SQLPL/SQL是Oracle对sql语言的过程化扩展,指在原有的增删查改的基础上,对SQL命令语言中增加了过程处理语句(如分支,循环等),使SQL语言具有过程处理能力。PL/SQL 是对SQL语言的扩展PL/SQL 是面向过程的语言(循环等) 不同数据库的SQL扩展 Orable:PL/SQL DB2...原创 2018-08-21 21:07:05 · 436 阅读 · 0 评论 -
Oracle数据库开发利器之函数——转换函数
转换函数日期转字符to_char(date[,fmt[,params]]) date表示要转换的日期, fmt表示转换的格式, params表示日期的语言(一般不写)fmt的取值: 年[YY/YYYY/YEAR], 月[MM/MONTH], 日[DD/DAY], 时[HH12/HH24], 分[MI], 秒[SS] 字符转日期to_date(s...原创 2018-08-20 21:54:11 · 249 阅读 · 3 评论 -
Oracle数据库开发利器之函数——日期函数
日期函数系统时间<sysdate 默认格式DD-MON-RR 日-月-年 日期操作add_months(date,i)在当前日期加上i个月,i可以是任何整数;如果i是小数,系统会自动截取整数部分;如果是负数就是在当前日期减去i个月。 next_day(date,char) 表示指定日期的下周几的日期 表示的是当前日期的下周一是几年几月几号。这个char...原创 2018-08-20 21:44:09 · 220 阅读 · 0 评论 -
Oracle数据库开发利器之函数——字符函数
字符函数大小写转换函数UPPER(char)把字符串从小写转换为大写LOWER(char)把字符串从大写转换为小写INITCAP(char)把字符串的首字母转换为大写 获取子字符串函数(是从左向右截取的)SUBSTR(char,[m[,n]])m表示取子串的开始位置 n表示截取子串的位数 注意:m=0表示从首字母开始截取,n可以省略表示从m的位置截取到字符串末尾; 如...原创 2018-08-20 21:33:06 · 202 阅读 · 0 评论 -
Oracle数据库开发利器之函数——数值函数
数值函数四舍五入取整函数常用计算三角函数四舍五入ROUND(n[,m]):省略m:0m>0:小数点后m位m<0:小数点前m位n表示要进行四舍五入的值,m表示要保留小数点后几位(m>0)或前几位(m<0),省略m则默认为0位即四舍五入取整。如果m或n中有一个值为null值,则结果返回null值。 注意:oracle中不能直接使用函数,...原创 2018-08-20 20:36:32 · 216 阅读 · 0 评论 -
解决Oracle分页使用order by排序造成分页顺序不对的问题
今天在做项目的时候,在使用JPA对订单进行按时间排序的时候发现查分页数据的时候有点问题。我先一页设置一条数据,然后发现第一页和第二页的数据居然一样。下面给出我BaseDao中的JPA分页方法: @Override public List<T> findPage(Integer firstIndex, Integer maxResults,String jpql,Ob...原创 2018-08-05 02:05:08 · 7632 阅读 · 0 评论 -
Oracle数据库开发必备利器之SQL基础——查询
基本查询语句select [distinct] column_name ,...|* from table_name where conditons;基本查询语句:select [Distinct] 列名 .. From 表名 [where condition]FROM (可以多表查询) WHERE 子句可带多个条件 DISTINCT 显示不重复数据在sql*plus中设置...原创 2018-06-27 21:58:44 · 715 阅读 · 0 评论 -
Oracle数据库开发必备利器之SQL基础——约束
约束描述定义规则,保证数据的完整;约束分类非空约束检查约束主键约束唯一约束非空约束在创建表时设置非空约束语法:CREATE TABLE table_name( column_name datatype NOT NULL,...);在修改表时添加非空约束语法:ALTER TABLE table_name MODIFY c...原创 2018-06-27 20:34:17 · 282 阅读 · 0 评论 -
Oracle数据库开发必备利器之SQL基础——操作表中数据
添加表中的数据INSERT INTO table_name(column1,column2,...) VALUES(value1,value2,...);向表中所有字段添加值示例:insert into userinfo values(1,'xxx','123123','xxxxx@qq.com',sysdate);select * from userinfo;注释:sy...原创 2018-06-26 22:58:58 · 331 阅读 · 0 评论 -
Oracle数据库开发必备利器之SQL基础——管理表
认识表1、表是基本存储单位 2、二维结构 3、行和列 约定 1.每一列数据必须具有相同的数据类型。 2.列名唯一。 3.每一行数据的唯一性数据类型字符型、数值型、日期型、其它类型字符型CHAR(n),NCHAR(n)CHAR(n),定长字符串,字符串的最大长度(n)为2000;NCHAR(n),以unicode编码的定长字符串,最大长度(...原创 2018-06-26 22:22:58 · 221 阅读 · 0 评论 -
Oracle数据库开发必备利器之SQL基础——用户与表空间
用户与表空间用户系统用户sys(管理员/系统操作员) &gt; system(可直接登录) sysman(操作企业管理器 - 管理员级别) scott(默认密码tiger)用户登录语句 [username/password] [@sever] [as sysdba|sysoper]system登录: sys登录: 查看登录用户 s...原创 2018-06-26 20:06:49 · 1037 阅读 · 0 评论 -
【SSM分布式架构电商项目-31】使用Spring基于应用层实现读写分离
方案解决读写分离的方案有两种:应用层解决和中间件解决。应用层解决优点: 1、 多数据源切换方便,由程序自动完成; 2、 不需要引入中间件; 3、 理论上支持任何数据库; 缺点: 1、 由程序员完成,运维参与不到; 2、 不能做到动态增加数据源;中间件解决 优缺点:优点: 1、 源程序不需要做任何改动就可以实现读写分离; 2、 动态...原创 2018-05-16 17:33:29 · 459 阅读 · 0 评论 -
【SSM分布式架构电商项目-30】MySQL数据库设置读写分离
背景我们一般应用对数据库而言都是“读多写少”,也就说对数据库读取数据的压力比较大,有一个思路就是说采用数据库集群的方案, 其中一个是主库,负责写入数据,我们称之为:写库; 其它都是从库,负责读取数据,我们称之为:读库;那么,对我们的要求是: 1、 读库和写库的数据一致; 2、 写数据必须写到写库; 3、 读数据必须到读库;安装两个mysql我们装的是绿色版的My...原创 2018-05-16 16:49:09 · 730 阅读 · 0 评论 -
MongoDB 索引和explain的使用
索引基础索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得 更快。MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查 询优化技巧。建索引的命令db.user.ensureIndex({"username":1}) 获取当前集合的索引db.user.getIndexes() 删除索引的命令db.user.dropIndex({"username原创 2017-12-03 17:43:56 · 468 阅读 · 0 评论 -
MongoDB 数据库创建删除、表(集合)创建删除、数据增删改查
数据库使用开启 mongodb 服务:要管理数据库,必须先开启服务,开启服务使用 mongod --dbpath D:\mongodb 管理 mongodb 数据库:mongo (一定要在新的 cmd 中输入) 清屏:cls查看所有数据库列表show dbs 创建数据库使用数据库、创建数据库use student 如果真的想把这个数据库创建成功,那么必须插入一个数据。 数据库中不能直原创 2017-12-03 17:24:25 · 82635 阅读 · 8 评论 -
使用 MongoDB
使用 MongoDB新建一个存放数据库的文件夹,注意:不能有中文和空格,建议不要放在 C 盘 启动 MongoDb 服务 开启 MongoDb 服务命令: mongod --dbpath D:\mongodb –dbpath 就是选择数据库文档所在的文件夹。 也就是说,mongoDB 中,真的有物理文件,对应一个个数据库。U 盘可以拷走。 注意:一定要保持,开机这个 CMD 不能动原创 2017-12-03 15:07:49 · 264 阅读 · 0 评论 -
MongoDB 数据库介绍、安装
数据库和文件的主要区别1、 数据库有数据库表、行和列的概念,让我们存储操作数据更方便 2、 数据库提供了非常方便的接口,可以让 nodejs、php java .net 很方便的实现增加修改删 除功能。 NoSql 介绍由于互联网的迅速发展,云计算与 Web2.0。这样大量的交互给数据库提出了更高的性能要 求,传统的数据库(本文泛指 SQL 数据库),即关系数据库虽然具备良好的事物管理,但在处理原创 2017-12-03 14:47:52 · 339 阅读 · 0 评论 -
MySQL大小写不敏感的解决方法
MySQL大小写不敏感的解决方法原创 2016-06-01 12:56:04 · 1287 阅读 · 0 评论 -
常用SQL查询语句
常用SQL查询语句转载 2016-03-19 12:46:20 · 573 阅读 · 0 评论