Jim Blog

Personal Blog Powered By Jim

@SpringBootApplication注解-从源码分析

@SpringBootApplication注解-从源码分析 1. 启动类的写法 123456@SpringBootApplicationpublic class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplicatio......

查询语句的元素

查询语句的元素 join inner join 两张表重合的部分匹配连接到一起 12345678910111213141516171819202122232425262728293031323334mysql> use RUNOOB;Database changedmysql> SELECT * FROM tcount_tbl;+---------------+---------......

sql优化

sql优化 SQL语句优化 慢查询日志发现有问题的SQL 通过MySQL慢查询日志对有效率问题的SQL进行监控 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10s以上的语句。通过MySQL的慢查......

死锁判定原理和具体场景

死锁判定原理和具体场景 什么是死锁 数据库是一个多用户使用的共享资源,当多个用户 并发地存取数据的时候,在数据库中就会发生多个事务同时存取同一个数据的情况,加锁是进行数据库并发控制的一种非常重要的技术。在实际应用中,如果两个事务需要一组有冲突的锁,而不能继续进行下去,这时便发生了死锁。 死锁的原因 1.事务之间对资源访问顺序的交替 此类常见于两个用户分别首先访问A表和B表,并锁住当前表,但是......

B树、B+树区别,索引为何使用B+树

B树、B+树区别,索引为何使用B+树 B树 描述一颗B树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,一般用字母m表示阶数。当m取2时,就是我们常见的二叉搜索树。 一颗m阶的B树定义如下: 1)每个结点最多有m-1个关键字。 2)根结点最少可以只有1个关键字。 3)非根结点至少有Math.ceil(m/2)-1个关键字。 4)每个结点中的关键字都按照从小到大的顺序排列,每个关键......

InnoDB和MyISAM索引

InnoDB和MyISAM索引 InnoDB和MyISAM所使用的索引 两种引擎都是使用B+树。 MyISAM引擎,B+树的数据结构中存储的内容实际上是实际数据的地址值。也就是说它的索引和实际数据是分开的,只不过使用索引指向了实际数据。这种索引的模式被称为非聚集索引。 Innodb引擎的索引的数据结构也是B+树,只不过数据结构中存储的都是实际的数据,这种索引有被称为聚集索引。 MyISAM......

innodb和myisam存储引擎的区别

innodb和myisam存储引擎的区别 在MySQL 5.5之前,MyISAM是mysql的默认数据库引擎,其由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然MyISAM性能极佳,但却有一个显著的缺点:不支持事务处理。不过,MySQL也导入了另一种数据库引擎InnoDB,以强化参考完整性与并发违规处理机制,后来就逐渐取代......

超键、候选键、主键、外键以及sql约束

超键、候选键、主键、外键以及sql约束 键 定义 超键(super key): 在关系中能唯一标识元组的属性集称为关系模式的超键 候选键(candidate key): 不含有多余属性的超键称为候选键。也就是在候选键中,若再删除属性,就不是键了! 主键(primary key): 用户选作元组标识的一个候选键程序主键 外键(foreign key):如果关系模式R中属性K是其它模式的主键,那......

数据库的锁

数据库的锁 锁分为乐观锁和悲观锁。 其中悲观锁按照类型可以划分为: 共享锁(读锁) 排他锁(写锁) 也可以按照锁的范围分为: 行锁 表锁 乐观锁 假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。 乐观锁是一种不会阻塞其他线程并发的控制,它不会使用数据库的锁进行实现,它的设计里面由于不阻塞其他线程,所以并不会引起线程频繁挂起和恢复,这样便能够提高并发能力,所以也有人把它称为......

drop、truncate、delete区别

drop、truncate、delete区别 drop 直接删除表; truncate 删除表中数据,再插入时自增长id又从1开始 ; delete 删除表中数据,可以加where字句。 drop table: 属于DDL(Data Definition Language,数据库定义语言) 不可回滚 不可带 where 删除表内容和结构 删除速度快 truncate table: ......