`
文章列表

mysql之行锁

1.索引失效行锁变表锁   2.间隙锁 前段时间系统老是出现insert死锁,很是纠结。经过排查发现是间隙锁!间隙锁是innodb中行锁的一种, 但是这种锁锁住的却不止一行数据,他锁住的是多行,是一个数据范围。间隙锁的主要作用是为了防止出现幻读,但是它会把锁定范围扩大,有时候也会给我们带来麻烦,我们就遇到了。 在数据库参数中, 控制间隙锁的参数是:innodb_locks_unsafe_for_binlog, 这个参数默认值是OFF, 也就是启用间隙锁, 他是一个bool值, 当值为true时表示disable间隙锁。那为了防止间隙锁是不是直接将innodb_locaks_unsafe ...
1.spring boot全局配置文件application.properties     #spring boot的全局配置文件,可以对一些默认配置的配置值进行修改 #默认为8080 server.port=9090 #默认为/ server.context-path=/molianzhonglong     2.starter pom    以下来源于:http://docs.spring.io/spring-boot/docs/1.5.3.BUILD-SNAPSHOT/reference/htmlsingle/ Spring Boot application ...
1.新建项目springboot.world   2.pom.xml加入父级依赖     <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> </parent>     添加spring boot 的父级依赖,这样当前的项目就是spring bo ...

mysql之表级锁总结

锁的定义: 锁是计算机协调多个进程或线程并发访问某一资源的机制   MySQL的表级锁有两种模式: 表共享读锁(Table Read Lock) 表独占写锁(Table Write Lock)             琐类型            读锁             写锁           读锁             是              否           写锁             否              否           结合上表,所以对MyISAM表进行操作会有以下情况: 1.对My ...
转载:http://singo107.iteye.com/blog/1175084   数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 、幻读 这几类问题。   √: 可能出现    ×: 不会出现   脏读 不可重复读 幻读 Read uncommitted √ √ √ Read committed × √ √ Repeatable read × × √
1.查看profiling   2.开启profiling   3.查看使用过的sql   4.查看query_id = 2 的情况  若出现以下4种说明sql写的有问题,需要优化 converting HEAP to MyISAM 查询结果太大,内存都不够用了,往磁盘上搬了 Creating tmp table 创建临时表(拷贝数据到临时表,用完在删除) Copying to tmp table on disk 把内存中临时表复制到磁盘 locked 锁定   show profile 的格式如下: SHOW PROFILE [type [, type] ...

mysql之高效sql注意

今天扯淡下我们写sql应该注意些什么,欢迎拍砖,互相学习!!!   注意点说明: 1.全值匹配最好 2.最左前缀法则,如果索引了多列,要遵循最左前缀法则。指的是查询从索引的最左前列开始并且不跳过索引中的列 3.不在索引列上做任何操作(计算、函数、自动或手动类型转换),会导致索引失效而转向全表扫描 4.范围条件右边的条件无法使用索引   5.尽量使用覆盖索引(只访问索引的查询,索引列和查询列一致),减少select *   6.使用 !=或<> 无法使用索引会导致全表扫描   7.is null,is not null 也无法使用索引   8.like以 ...
一.2张表分析     select * form users left join dept on users.deptId = dept.id     以左边为驱动,左边表的数据自然全有了,所以要再dept表建立id索引,我这举的是个特例了,因为部门表id是主键,自动建立索引了。   二.3张表分析     select * form users left join dept on users.deptId = dept.id left join wages on user.id = wages.user_id     此时需要在部门表id,wages表user_id 建立索引 ...

mysql之-explain扯淡

explain 能分析你写的sql性能高不高,就这样概括下,不服来拍砖!!!   执行计划包含的信息   为什么说他能分析,因为他能干这种事情 1.表的读取顺序 2.数据读取操作的操作类型 3.哪些索引可能被使用  4.哪些索引被 ...

mysql之索引

一.索引是什么? 索引Index是帮助mysql高效获取数据的数据结构。可以简单理解为"排好序的快速查找数据结构" 索引的本质:索引是数据结构 索引的目的:提高查询效率 一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上   二.哪些情况需要建索引 1.主键自动建立唯一索引 2.频繁作为查询条件的字段 3.查询中与气体表关联的字段,外键关系 4.查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度 5.单键/组合索引的选择问题(高并发下倾向创建组合索引) 6.查询中统计或者分组字段   三.哪些情况 ...

mysql之七种sql理论

1.七种join理论  
如果帮到您了,请支付宝首页输入548980984领个红包,支持下!
Global site tag (gtag.js) - Google Analytics