数据库
瘦子没有夏天
大家好,我是Leon。一个专业与Java领域的程序员,偶尔理理财。欢迎大家来阅读我博客,如果你发现极个别文章和书籍内容雷同,请叫我勤奋的code搬运工٩(๑❛ᴗ❛๑)۶。我的邮箱:gyoomi0709@foxmail.com
展开
-
数据恢复删除的表及其数据方法
一:表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的。一般步骤有:1、从flash back里查询被删除的表 select * from recyclebin2.执行表的恢复 flashback table tb to before drop,这里的tb代表你要恢复的表的名称。二:表数据恢复 对误删的表记录,只要原创 2017-10-10 19:52:30 · 3259 阅读 · 1 评论 -
深入理解MySQL8中死锁及线上故障解决
深入理解MySQL8中死锁及线上故障解决一、什么是死锁死锁是指两个或两个以上的事务在执行过程中,因争夺锁资源而造成的一种互相等待的现象。若无外力作用,事务都将无法推进下去。 解决死锁问题最简单的方式是不要有等待,将任何的等待都转化为回滚,并且事务重新开始。毫无疑问,这的确可以避免死锁问题的产生。然而在线上环境中,这可能导致并发性能的下降,甚至任何一个事务都不能进行。而这所带来的问题远比...原创 2019-08-01 17:28:07 · 2858 阅读 · 0 评论 -
深入理解MySQL中的锁机制
深入理解MySQL中的锁一、什么是锁1.1 为什么需要锁开发多用户、数据库驱动的应用系统,最大的一个难点:一方面就是要最大程度的利用数据库的并发访问,另一方面还要确保每个用户能一致的方式修改和读取数据。因此,有了锁。当然,这也是数据库系统区别于文件系统的特点。保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素。从这一角度来...原创 2019-06-17 16:27:10 · 1626 阅读 · 5 评论 -
Spring中的事务及数据库事务的关系
Spring中的事务及数据库事务的关系一、MySQL中的事务如果对MySQL中的事务不了解的话,请先看 基于MySQL 8.0 对事务的深度理解二、Spring中的事务Spring管理事务的方式编程式事务编程式事务就是利用手动代码编写事务相关的业务逻辑,这种方式比较复杂、啰嗦,但是更加灵活可控制。声明式事务其实包括xml配置和注解的使用方式。xml形如下: <...原创 2019-06-13 17:23:24 · 8361 阅读 · 2 评论 -
基于MySQL 8.0 对事务的深度理解
基于MySQL 8.0 对事务的深度理解一、MySQL中事务隔离级别事务的隔离级别有哪些?隔离级别脏读不可重复读幻读(虚读)未提交读(Read uncommitted)可能可能可能已提交读(Read committed)不可能可能可能可重复读(Repeatable read)不可能不可能可能可串行化(Serializable )...原创 2019-06-12 23:16:14 · 2427 阅读 · 0 评论 -
SQL查询之分组后取每组的前N条记录
SQL查询之分组后取每组的前N条记录一、背景资讯信息实体code说明id主键title资讯名称views浏览量info_type资讯类别资讯分类实体id主键name资讯分类名称初始化SQLDROP TABLE IF EXISTS `info`;CREATE TABLE `info` ( `...原创 2019-03-02 23:51:05 · 36178 阅读 · 7 评论 -
Case When和聚合函数count、sum的使用
需求:根据贫困标志,取出不同标准下的的人数有多少,以区县位单位。1代表已脱贫人口;2代表返贫人口;3代表未脱贫select t3.region_id as 'regionId',t3.region_name as 'regionName',count(case when t1.tricolor = 1 then 1 else null end ) as 'greenTotal'...原创 2018-05-03 09:59:56 · 28935 阅读 · 3 评论 -
MySQL(5.0)和Oracle(11g)中char类型区别(踩坑过)
1:mysql中charCHAR数据类型是MySQL中固定长度的字符类型。 我们经常声明CHAR类型,其长度指定要存储的最大字符数。 例如,CHAR(20)最多可以容纳20个字符。如果要存储的数据是固定大小,则应使用CHAR数据类型。在这种情况下,与VARCHAR相比,您将获得更好的性能。CHAR数据类型的长度可以是从0到255的任何值。当存储CHAR值时,MySQL将其值与空格...原创 2018-04-17 15:08:17 · 1645 阅读 · 1 评论 -
MySQL中大小写区分问题
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的: 1、数据库名与表名是严格区分大小写的; 2、表的别名是严格区分大小写的; 3、列名与列的别名在所有的情况下均是忽略大小写的; 4、变量名也是严格区分大小写的; MySQL在Windows下都不区分大小写。 所以在不同操作系统中为了能使程序和数据库都能正常运行,最...转载 2018-04-17 14:51:12 · 2325 阅读 · 0 评论 -
Orace SQL基础-读书笔记
很久之前的笔记,今天整理一下,发出来。 1. 多列分组时: select fk_deptid,gender,count(*) from forp_user group by rollup(fk_deptid,gender) order by fk_deptid 按照部门和性别分组后,并进行小计(横向小计) select fk_deptid,gender,count(*) fro...原创 2018-06-22 21:47:56 · 378 阅读 · 0 评论 -
基于实际开发的Oracle SQL优化建议
1)避免Select * 2)编写SQL尽量使用相同的编码风格。语句解析、语句执行、返回执行结果等几个步骤。共享的SGA区,如有省去解析sql 3)使用truncate替换delete。delete属于DML语言。 4)在确保业务逻辑前提下及时COMMIT事务 5)in:子查询->主查询 exists:主查询->子查询。子查询的记录较少,主查询是记录较大且有索引使用...原创 2018-02-11 14:09:46 · 287 阅读 · 0 评论 -
SQL中in和exists区别
首先,查询中涉及到的两个表,一个user和一个order表,具体表的内容如下: user表: order表: in 确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。 具体sql语句如下: 1 SELECT 2 ...转载 2018-02-10 13:58:02 · 215 阅读 · 0 评论 -
数据库字段类型变更方式
alter table web_app_base add tmp_col varchar2(3999);-- 添加临时列 update web_app_base set tmp_col = C_EDR_CTNT ; --将目标字段中数据加入到临时列中 update web_app_base set C_EDR_CTNT = null; --将目标字段数据清空原创 2017-12-18 21:28:20 · 1140 阅读 · 0 评论 -
数据库中distinct关键字的使用
distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用 它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。下面先来看看例子:table表字段1 字段2 id name 1 a原创 2017-12-25 16:24:19 · 37185 阅读 · 3 评论 -
sql语句中as的用法和作用
最近做项目中,偶然发现在SQL语句中出现了as这个词,一直以来没怎么关注是什么意思,毕竟影响不大,今天有空,就在网上查了一些资料,大概有了一些的了解我们的Sql语句在很多数据库中都是通用的,比如像Mysql数据库 Access数据库. Oracle数据库. Sqlite数据库 .甚至在我们的Excel中也可以使用Sql语句.在我的数据库中有user这个表,正常来说,想查询该表,那原创 2017-11-29 13:58:56 · 1874 阅读 · 0 评论 -
SQL中left join,right join,inner join
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举例如下: --------------------------------------------表A记录如下:aID aNum1原创 2017-11-29 11:48:08 · 238 阅读 · 0 评论 -
SQL调优(一)
在大数据量的环境中,系统的响应时间是个很大的挑战,这涉及到很多方面:数据层、应用层、业务层、网络规划布局等。在数据层,我整理了一下几点: 1. 数据库表的合理设计 ; 2. 索引、分区表的合理使用; 3. sql语句的质量;这篇文章,就从数据库优化开始写起,本文包括数据库设计及sql语句优化。一、字段设计 字段是数据库最基转载 2017-10-31 13:14:33 · 253 阅读 · 0 评论 -
深入理解MySQL8中的MVCC实现原理
深入理解MySQL8中的MVCC实现原理一、事务事务是数据库的基础,如果对事务陌生或遗忘的话,请回过头参考我的这篇 基于MySQL 8.0 对事务的深度理解二、版本链对于使用InnoDB存储引擎的表来说,它的聚簇索引记录中都包含两个必要的隐藏列(row_id并不是必要的,我们创建的表中有主键或者非NULL唯一键时都不会包含row_id列)trx_id:每次对某条聚簇索引记录进行改动时...原创 2019-08-02 15:07:19 · 2760 阅读 · 4 评论