Technology MySQL索引优化分析,SQL优化,慢查询分析 索引的分析 使用explain查看sql的执行计划 在MySQL中可以在sql前面加上explain语句,来显示该条SQL的执行计划,输出内容如下: explain详解 2021-12-01 Views(1,884) Comments(0) ReadMore
Technology Mybatis如何返回Map而不是List < Map > 在使用Mybatis的时候,有时候我们会有这么一种需求:我们希望通过Mybatis查询某一个表返回的结果是一个Map(HashMap),而这个Map的Key是表的一个字段,Value是另一个字段。然而当我们按照Mybatis的做法,指定查询Mapper语句的resultType为map时返回的结果是一个List。本文的例子将采用一个简单的方法,直接返回map 2021-12-01 Views(2,720) Comments(0) ReadMore
Technology MySQL之4--Innodb锁分析 现在MySQL的默认存储引擎是InnoDB,其提供了一个很强大的功能就是行级锁。可以通过show status like 'innodb_row_lock%';来查看当前系统的行锁争用情况。如果Innodb_row_lock_waits和Innodb_row_lock_time_avg两个值比较高,则说明锁争用比较严重。 2021-12-01 Views(1,869) Comments(0) ReadMore
Technology MySQL之3--MySQL索引优化、SQL优化、慢查询分析 本文基于Mysql5.6主要介绍了MySQL的索引分析工具–explain和profiling。并利用MySQL的索引分析工具,对MySQL的索引进行分析,通过观察MySQL索引分析的过程,可以看到常见的索引优化点,以及在使用索引的时候的常见问题。本文的最后部分介绍了MySQL的无效索引(什么时候你为这个字段添加了索引,但是却无法使用 2021-12-01 Views(1,897) Comments(0) ReadMore
Technology MySQL之2--存储引擎选择与比较 MySQL和大多数数据库不同,MySQL中有一个存储引擎的概念,针对不同的存储需求用户可以选择不同的存储引擎。插件式的存储引擎是MySQL数据库的一个重要特征。用户可以基于此选择如何存储和索引数据 2021-12-01 Views(1,668) Comments(0) ReadMore
Technology MySQL之1--MySQL事物隔离级别 事物的ACID 事物是有一组SQL语句组成的逻辑处理单元,事物具有ACID四个属性。 原子性:事物是一个原子操作单位,其对数据的修改要么全部执行,要么全部不执行。 一致性:在事物开始和完成时数据都必须保持一致的状态。可以这样理解。MySQL中的B+树索引缓存,和数据的存储,在事物开始前和结束后都是对应一致的。 隔离性:一个事物处理过程中的中间状态对另外一个事物是不可见的。 持久性:事物完成之后。 2021-12-01 Views(2,050) Comments(0) ReadMore
Technology Java并发编程之9——如何理解Condtion 在理解Condition之前首先要明白两个概念: 等待队列:等待获取锁的线程构成的队列,称为等待队列 条件队列:已经获取到锁的线程由于某种原因释放了锁,等待signal信号,而构成的队列称为条件队列 2021-11-29 Views(1,534) Comments(0) ReadMore
Technology Java并发编程之8——AQS如何实现Semaphore Semaphore的实现和ReentrantLock的实现很相似,都有公平和非公平两种实现。本文的分析可以对比 LOCK源码分析 和 CountDownLatch源码分析 对比看。这样可以看出AQS的几条关键执行路径。 2021-11-29 Views(1,501) Comments(0) ReadMore
Technology Java并发编程之7——AQS如何实现ReentrantLock ReentrantLock是显示锁,Synchronized叫内置锁是JDK1.6中由道格李引入的。他们的关系就像 wait/notify 和 condition。RenentrantLock的实现和CountDownLatch的实现基本相同,唯一的区别是ReentrantLock有两种实现,分别对应公平锁和非公平锁。 2021-11-29 Views(993) Comments(0) ReadMore
Technology Java并发编程之6——AQS如何实现CountDownLatch 前面写过一篇文章AQS源码分析的时候介绍过AQS是java并发编程的基础,Java并发包下面提供的同步工具类基本上都是以AQS构建的,一个同步类的实现主要分为三步: 该同步工具类 ,定义内部类实现AQS 定义该内部类的构造方法设置同步状态 实现tryAcquire/tryRelease方法 2021-11-29 Views(1,430) Comments(0) ReadMore