
database
文章平均质量分 75
江上渔者21号
这个作者很懒,什么都没留下…
展开
-
DB2和oracle的schema对象
https://www.jianshu.com/p/e1f38505f789原创 2020-03-18 14:35:54 · 298 阅读 · 0 评论 -
db2 自己学习专区
DB2中的索引(Index)和约束(Constraint)https://blog.youkuaiyun.com/davinciyxw/article/details/8778515db2 序列查询https://www.cnblogs.com/yelongsan/p/6601147.htmldb2 建立,删除,查询序列https://blog.youkuaiyun.com/suns...原创 2019-12-17 21:20:23 · 144 阅读 · 0 评论 -
group by 多个字段进行聚合
https://segmentfault.com/a/1190000006821331原创 2019-11-29 15:17:19 · 2202 阅读 · 0 评论 -
db2 数据库 删列会锁表-668
解决方式:https://blog.youkuaiyun.com/hekaihaw/article/details/65634198原创 2019-10-25 18:58:29 · 590 阅读 · 0 评论 -
mysql 悲观锁
悲观锁与乐观锁相对应的就是悲观锁了。悲观锁就是在操作数据时,认为此操作会出现数据冲突,所以在进行每次操作时都要通过获取锁才能进行对相同数据的操作,这点跟java中的synchronized很相似,所以悲观锁需要耗费较多的时间。另外与乐观锁相对应的,悲观锁是由数据库自己实现了的,要用的时候,我们直接调用数据库的相关语句就可以了。说到这里,由悲观锁涉及到的另外两个锁概念就出来了,它们就是共享锁...转载 2019-03-09 22:18:38 · 906 阅读 · 0 评论 -
mysql 行锁 间隙锁 表锁
行锁总结:多个事务操作同一行数据时,后来的事务处于阻塞等待状态。这样可以避免了脏读等数据一致性的问题。后来的事务可以操作其他行数据,解决了表锁高并发性能低的问题。# Transaction-Amysql> set autocommit = 0;mysql> update innodb_lock set v='1001' where id=1;mysql> comm...转载 2019-03-09 22:31:38 · 1608 阅读 · 3 评论 -
MyISAM存储引擎 中的读写锁
MyISAM存储引擎InnoDB和MyISAM的最大不同点有两个:InnoDB支持事务(transaction);MyISAM不支持事务 Innodb 默认采用行锁, MyISAM 是默认采用表锁。加锁可以保证事务的一致性,可谓是有人(锁)的地方,就有江湖(事务) MyISAM不适合高并发共享读锁对MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读操作,但会阻塞对同一...转载 2019-03-09 22:46:54 · 840 阅读 · 0 评论 -
mysql 锁的查看与优化
实践解决分析行锁定通过检查InnoDB_row_lock 状态变量分析系统上中行锁的争夺情况mysql> show status like 'innodb_row_lock%';+-------------------------------+-------+| Variable_name | Value |+---------------...转载 2019-03-09 23:01:30 · 465 阅读 · 0 评论 -
MySQL的InnoDB的幻读问题,很深刻
MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。未提交读(READ UNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)。 提交读(READ COMMITTED)。本事务读取到的是最新的数据(其他事务提交后的)。问题是,在同一个事务里,前后两次相同的SELECT会读到不同的结果...转载 2019-03-10 09:50:58 · 543 阅读 · 0 评论 -
mysql 乐观锁
乐观锁用数据版本(Version)记录机制实现,这是乐观锁最常用的一种实现方式。何谓数据版本?即为数据增加一个版本标识,一般是通过为数据库表增加一个数字类型的 “version” 字段来实现。当读取数据时,将version字段的值一同读出,数据每更新一次,对此version值加1。当我们提交更新的时候,判断数据库表对应记录的当前版本信息与第一次取出来的version值进行比对,如果数据库表当前...转载 2019-03-09 22:14:45 · 144 阅读 · 0 评论 -
mysql中explain的type的解释
导语:很多情况下,有很多人用各种select语句查询到了他们想要的数据后,往往便以为工作圆满结束了。这些事情往往发生在一些学生亦或刚入职场但之前又没有很好数据库基础的小白身上,但所谓闻道有先后,只要我们小白好好学习,天天向上,还是很靠谱的。当一个sql查询语句被写出来之后,其实你的工作只完成了一小半,接下来更重要的工作是评估你自己写的sql的质量与效率。mysql为我们提供了很有用的辅助...转载 2019-03-17 19:02:08 · 112 阅读 · 0 评论 -
MySQL 性能优化神器 Explain 使用分析
简介MySQL 提供了一个 EXPLAIN 命令, 它可以对SELECT语句进行分析, 并输出SELECT执行的详细信息, 以供开发人员针对性优化.EXPLAIN 命令用法十分简单, 在 SELECT 语句前加上 Explain 就可以了, 例如:EXPLAINSELECT*fromuser_infoWHEREid<300;准备为了接下来方便演示 ...转载 2019-03-07 08:30:53 · 124 阅读 · 0 评论 -
间隙锁的造成的死锁
间隙锁当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,叫做“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁(Next-Key锁)。 举例来说,假如emp表中只有101条记录,其empid的值分别是 1,2,...,100,101,下面的SQL:Sele...转载 2019-03-09 16:50:09 · 3264 阅读 · 2 评论 -
Mysql innodb 间隙锁: 记录不存在也会加间隙锁
如果mysql innodb选的是RR(可重复读)隔离级别,则就会有间隙锁!前段时间系统老是出现insert死锁,很是纠结。经过排查发现是间隙锁!间隙锁是innodb中行锁的一种, 但是这种锁锁住的却不止一行数据,他锁住的是多行,是一个数据范围。间隙锁的主要作用是为了防止出现幻读,但是它会把锁定范围扩大,有时候也会给我们带来麻烦,我们就遇到了。 在数据库参数中, 控制间隙锁的参数是:in...转载 2019-03-09 16:49:09 · 1496 阅读 · 0 评论 -
mysql死锁的情况问题分析 gap间隙锁
线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能瓶颈。 为了更系统的分析问题,本文将从死锁检测、索引隔离级别与锁的关系、死锁成因、问题定位这五个方面来展开讨论。图1 ...转载 2019-03-09 15:25:41 · 838 阅读 · 0 评论 -
脏读、不可重复读、幻读区别
1.脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问 这个数据,然后使用了这个数据。2.不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两 次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务...转载 2019-03-09 15:11:10 · 873 阅读 · 0 评论 -
索引的缺点(3):降低增删改的性能
索引对于 增删改操作的性能影响比较大。(1)insert操作insert的过程是,先把数据插入到表中,然后再把数据插入到相关索引中,如果这个表有5个索引,那么就得维护这5个索引,不管这个插入的数据是否为NULL值。所以,索引个数越多,对于insert操作来说,维护的成本就越大,插入一条数据的速度也就越慢。如果发现插入速度很慢,可以检查一下是否这个表的索引太多了。把数据插入索引的...转载 2019-03-10 20:52:09 · 1548 阅读 · 0 评论 -
mysql的数据类型
MySQL数据类型数字类型 整数: tinyint、smallint、mediumint、int、bigint 浮点数: float、double、real、decimal 日期和时间: date、time、datetime、timestamp、year 字符串类型 字符串: char、varchar 文本: tinytext、text、mediumtext、longtex...转载 2019-03-10 21:34:59 · 191 阅读 · 0 评论 -
MySQL 中 AUTO_INCREMENT 的“坑”--id不连续
AUTO_INCREMENT 的“坑”--id不连续https://blog.youkuaiyun.com/whereismatrix/article/details/54667502Mysql设置auto_increment_increment和auto_increment_offsethttps://www.cnblogs.com/DBArtist/p/auto_incremen...转载 2019-09-26 23:40:48 · 988 阅读 · 0 评论 -
mac安装mysql
前言:因为用mac开发,很多工具不是很熟练,这里做个笔记,以防以后再次入坑!!!安装方式一:用dmg镜像安装1、安装下载好mysql MAC版安装包,常规步骤安装,安装过程中会出现如下提示:2018-04-22T08:07:19.044013Z 1 [Note] A temporary password is generated for root@localhost: TfrN...转载 2019-06-23 00:26:38 · 823 阅读 · 0 评论 -
MySQL分库、分表的问题
问题描述 为什么进行分表? 分库? 一般多少数据量开始分表? 什么是数据库垂直拆分和水平拆分 回答为什么要进行分库业务发展,当单个数据库中的表越来越多,数据量越来越大的时候。数据的增删改查所消耗的资源就会增加。由于mysql是无法分布式部署(可能会有人说不是有主从吗?并不是,详细会在其他文章说明)的。==而单台服务器的资源,如CPU、磁盘、内存、IO等都是...转载 2019-04-09 20:58:00 · 254 阅读 · 0 评论 -
mysql获得自增字段下一个值
作者:@keenleung本文为作者原创,转载请注明出处:http://www.cnblogs.com/KeenLeung/p/3864614.html目录初次研究:表:sql:show table status from carsale_db LIKE 'tb_car'结果:想办法取得这其中的值....在Internet上找到这个资料:...转载 2019-03-24 13:06:35 · 1677 阅读 · 0 评论 -
INNODB自增主键的一些问题
背景: 自增长是一个很常见的数据属性,在MySQL中大家都很愿意让自增长属性的字段当一个主键。特别是InnoDB,因为InnoDB的聚集索引的特性,使用自增长属性的字段当主键性能更好,这里要说明下自增主键需要注意的几个事项。问题一:表锁在MySQL5.1.22之前,InnoDB自增值是通过其本身的自增长计数器来获取值,该实现方式是通过表锁机制来完成的(AUTO-I...转载 2019-03-24 13:04:00 · 641 阅读 · 1 评论 -
优化MySql中explain的时候出现using filesort
在explain我们所使用的sql的时候,经常会遇到using filesort这种情况,原以为是由于有相同列值的原因引起,结果昨天看到公司的一个sql,跟同事讨论了下加上自己又做了一些测试,突然发现自己原来的想法是错误的。首先,只有在order by 数据列的时候才可能会出现using filesort,而且如果你不对进行order by的这一列设置索引的话,无论列值是否有相同的都会出现us...转载 2019-03-22 16:55:58 · 1480 阅读 · 0 评论 -
04_atomikos JTA/XA分布式事务
目录1直接使用TransactionEssentials的API2、TransactionEssentials与spring、mbatis整合3 Atomikos配置4 配置日志框架Atomikos公司官方网址为:https://www.atomikos.com/。其旗下最著名的产品就是事务管理器。产品分两个版本:TransactionEssentials:开...转载 2019-03-20 23:24:22 · 602 阅读 · 0 评论 -
03_JTA规范
JTA规范下载地址:http://download.oracle.com/otn-pub/jcp/jta-1.1-spec-oth-JSpec/jta-1_1-spec.pdf1 事务模型 Java事务API(JTA:Java Transaction API)和它的同胞Java事务服务(JTS:Java Transaction Service),为J2EE平台提供了分布式事务...转载 2019-03-20 23:23:11 · 222 阅读 · 0 评论 -
MySQL 主从同步延迟的原因及解决办法
mysql 用主从同步的方法进行读写分离,减轻主服务器的压力的做法现在在业内做的非常普遍。 主从同步基本上能做到实时同步。我从别的网站借用了主从同步的原理图。在配置好了, 主从同步以后, 主服务器会把更新语句写入binlog, 从服务器的IO 线程(这里要注意, 5.6.3 之前的IO线程仅有一个,5.6.3之后的有多线程去读了,速度自然也就加快了)回去读取主服务器的binlo...转载 2019-03-07 17:14:25 · 315 阅读 · 0 评论 -
MySQL-InnoDB-MVCC多版本并发控制
MVCC(Multiversion Concurrency Control)1.先引用《高性能MySQL》中对MVCC的部分介绍MySQL的大多数事务型存储引擎实现的其实都不是简单的行级锁。基于提升并发性能的考虑, 它们一般都同时实现了多版本并发控制(MVCC)。不仅是MySQL, 包括Oracle,PostgreSQL等其他数据库系统也都实现了MVCC, 但各自的实现机制不尽相同, 因...转载 2019-03-09 14:48:55 · 228 阅读 · 0 评论 -
mysql数据库表清空后id如何从1开始自增
环境: 数据库:mysql我们的数据库表中经常会使用id自增,但是每次清空表后id并不是从1开始计数,总是接着之前的进行自增,那么解决呢?使用mysql的truncate命令,用法:truncate table 表名;这样表的id自增就会变回从1开始自增了。备注:该操作会清空您宝贵的数据库,我想题目已经说的够清楚了,请谨慎操作-----------------...转载 2019-01-18 11:56:37 · 5615 阅读 · 1 评论 -
Elasticsearch检索实战 和mysql的对比
随着公司房源数据的急剧增多,现搜索引擎 Solr 的搜索效率和建立索引效率显著降低,而 Elasticsearch 是一个实时的分布式搜索和分析引擎,它是基于全文搜索引擎 Apache Lucene 之上,接入 Elasticsearch 是必然之选。本文是我学习使用 Elasticsearch 检索的笔记。Elasticsearch 支持 RESTful API 方式检索,查询结果以 JSO...转载 2018-12-07 16:34:23 · 3533 阅读 · 1 评论 -
mysql中null与not null的区别及效率
<span style="font-family: 宋体; background-color: rgb(255, 255, 255);">经常用mysql的人可能会遇到下面几种情况:</span>1、我字段类型是not null,为什么我可以插入空值2、为什么not null的效率比null高3、判断字段不为空的时候,到底要用select * from tab...转载 2018-12-07 16:23:12 · 2276 阅读 · 0 评论 -
sql之left join、right join、inner join的区别
sql之left join、right join、inner join的区别left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举例如下: -----------------------------------...转载 2018-08-02 17:39:45 · 142 阅读 · 0 评论 -
分库分表
目录1 分库分表介绍2 分库分表的优点3 分库分表的挑战3.1 基本的数据库增删改功能 3.2 分布式id3.3 分布式事务3.4 动态扩容3.5 数据迁移4 zebra与分库分表1 分库分表介绍读写分离,主要是为了数据库读能力的水平扩展(参考:Zebra_基础知识_读写分离)。而分库分表则是为为了写能力的水平扩展。一旦业务表中的数据量大了,从维...转载 2018-07-26 15:32:42 · 1219 阅读 · 0 评论 -
读写分离
1 读写分离介绍 在单台mysql实例的情况下,所有的读写操作都集中在这一个实例上。当读压力太大,单台mysql实例扛不住时,此时DBA一般会将数据库配置成集群,一个master(主库),多个slave(从库),master将数据通过binlog的方式同步给slave,可以将slave节点的数据理解为master节点数据的全量备份。关于如何配置mysql主从同步,可以参考mysq...转载 2018-07-26 15:25:04 · 2089 阅读 · 0 评论 -
redis 的查看所插入的键
当我们需要遍历Redis所有key或者指定模式的key时,首先想到的是KEYS命令:KEYS pattern官网对于KEYS命令有一个提示: KEYS 的速度非常快,例如,Redis在一个有1百万个key的数据库里面执行一次查询需要的时间是40毫秒 。但在一个大的数据库中使用它仍...转载 2018-07-26 14:13:40 · 1234 阅读 · 0 评论 -
数据源,数据库
jdbc基础1.什么是数据源?答:数据源定义的是连接到实际数据库的一条路径而已,数据源中并无真正的数据,它仅仅记录的是你连接到哪个数据库,以及如何连接的,如odbc数据源。也就是说数据源仅仅是数据库的连接名称,一个数据库可以有多个数据源连接。 &转载 2018-07-25 16:06:56 · 1385 阅读 · 0 评论 -
MySQL的limit用法和分页查询的性能分析及优化
一、limit用法在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。SELECT * FROM table LIMIT [offset,] rows | `rows OFFSET offset ` (LIMIT offset, `length`)SELECT*FROM tablewhere condition...转载 2018-07-04 11:50:23 · 214 阅读 · 0 评论 -
mysql是数据库导入导出
mysql导入导出sql文件window下1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u dbuser -p dbname > dbname.sql2.导出一个表mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名mysqldump -u dbuser -p dbname users> dbna...转载 2018-07-04 11:42:38 · 173 阅读 · 0 评论 -
mysql 中的锁
1、delete from A where Id = 1;Id是主键,仅锁住Id为1 的哪一行2、delete from A where value = 1;value是二级索引,锁住所有value为1的行,在对数据进行操作。3、delete from A where desc = 1;desc没有索引,锁住所有扫描过的行...原创 2018-06-29 17:48:52 · 254 阅读 · 0 评论 -
sql 语句
一、SQL中的语法 1、drop table 表名称 eg: drop table dbo.Sys_Test 2、truncate table 表名称 eg: truncate table dbo.Sys_Test 3、delete from...原创 2018-04-16 15:24:53 · 256 阅读 · 0 评论