程序猿洞晓
MySQL数据库系列(五):MySQL之SQL优化十大口诀了解一下 MySQL数据库系列(五):MySQL之SQL优化十大口诀了解一下
SQL优化,心中永远的痛,同事写的各种复杂SQL,各种坑,有时候想拿出来优化一下,但是总感觉力不从心,不知从哪里下手。……。全值匹配是最优,最左前缀原则要注意,乱在索引列上操作惹祸害,范围查询记得放后面,不等于使用要小心,空和非空要注意,模糊查询通配符勿乱放,字符串查询加引号,OR变UNION效率会更高,记得覆盖索引尽量用。
2018-10-11
MySQL数据库系列(四):MySQL数据库的执行计划怎么看 MySQL数据库系列(四):MySQL数据库的执行计划怎么看
在写执行计划之前需要先了解一下数据库有哪些索引。其中组合索引有一个特性就是最左前缀原则,组合索引的最左列被使用到才会让整个组合索引生效。比如一个索引idx_name_phone,在索引列中name在前面,phone在后,当单纯是使用phone来查询的时候,是不会走idx_name_phone索引的,只有在name被使用的时候,才会让整个索引起作用。
2018-10-08
MySQL数据库系列(三):MySQL数据库的ACID事务特性和隔离性级别 MySQL数据库系列(三):MySQL数据库的ACID事务特性和隔离性级别
事务的特性主要有四种,简称为ACID。分别如下:原子性(atomicity):一个事务内是一个最小的操作单元,在此单元里操作成功或者失败都是相同的,不会存在部分成功部分失败的问题。隔离性(isolation):多个事务之间是隔离开的,事务之间对数据的操作是不会互相影响的。但是对于数据库来说有不同的隔离级别,事务之间的影响也是不同的。
2018-10-06
MySQL数据库系列(二):MySQL数据库的存储引擎 MySQL数据库系列(二):MySQL数据库的存储引擎
mysql存储引擎熟知的主要是myISAM、InnoDB。myISAM和InnoDB到底有什么区别呢,都常说如果项目上使用到事务就用InnoDB,如果对事务无要求就用myISAM,查询速度更快。除了这两个存储引擎还有那些呢,虽然不常用,但是还是要做个了解,万一遇到合适的场景,到时候就没有那么慌啦。这篇内容主在了解,不做详细原理解释。
2018-10-04
MySQL数据库系列(一):MySQL数据库中锁 MySQL数据库系列(一):MySQL数据库中锁
锁是计算机协调多个进程或纯线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所在有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。
2018-10-02
一起谈谈设计模式(二):建造者模式 一起谈谈设计模式(二):建造者模式
建造者模式是一种常用的设计模式,你可能每时每刻都在用只是你没有察觉到。比如我们常用的lambok内的@Builder注解,就是使用了建造者模式,业务代码中只要调用.builder方法,然后设置属性,最后调用.build就得到了最终的目标对象。这篇文章首先讲建造者模式内的几种角色,已经他们之间是如何配合完成一个对象的创建,最后……
2018-09-29
ORM框架之Mybatis(九):二级缓存源码的装饰器模式应用 ORM框架之Mybatis(九):二级缓存源码的装饰器模式应用
mybatis的缓存有一级和二级两个缓存,在默认的情况下一级缓存是开启的,但是二级缓存是关闭的需要自己去配置,首先是在mybatis-config.xml配置文件中打开二级缓存的总开关,然后就是在每个Mapper.xml文件中开启对应的二级缓存,因为二级缓存是基于命名空间,也可以变相的理解为基于一个Mapper.xml文件。在cache……
2018-09-24
ORM框架之Mybatis(八):mybatis基础代码的了解和源码跟踪 ORM框架之Mybatis(八):mybatis基础代码的了解和源码跟踪
mybatis使用在日常开发中很简单,基本没有门槛,都是和Spring直接集成,然后把之前的一些配置copy到spring的配置文件中就可以使用。具体mybatis的配置文件加载代码,已经SqlSession执行的细节都被封装到了框架中,符合面向对象编程,但是存在一个问题就是那些细节的代码慢慢都被遗忘。写这个博客就是记录……
2018-09-19
一起谈谈设计模式(一):适配器模式 一起谈谈设计模式(一):适配器模式
适配器模式,将一个类的接口转换成客户希望的另外一个接口,使得之前由于接口不兼容不能一起工作的那些类可以一起工作。举个栗子,现在小明需要到世界各国去访问,但是现在有一个问题需要解决,小明只会中文,英语、法语啥的都不懂,这个时候就需要请翻译官,每个翻译官对应一种语言。然后小明用中文告诉翻译官所要说的内容,翻译官将中文转换成对应……
2018-09-17
ORM框架之Mybatis(七):configuration配置源码除探 ORM框架之Mybatis(七):configuration配置源码除探
建造者模式是Java基本设计模式的一种,是经常被使用到的。比如在开发过程中经常使用的lambok插件,在实体类上加上@Builder就可以使用建造者模式方式构建实体对象。这mybatis中同样也使用到了这种设计模式,但是不是使用的lambok插件。在读取配置文件的时候,需要读取各种类型的标签,让构造器和标签对应,可以将标签的……
2018-09-15
Java虚拟机那些事儿(十二):类加载器 Java虚拟机那些事儿(十二):类加载器
双亲委派模型是描述类加载器之间的层次关系。它要求除了顶层的启动类加载器外,其余的类加载器都应当有自己的父类加载器。如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈……
2018-09-13
ORM框架之Mybatis(六):logging源码实现分析 ORM框架之Mybatis(六):logging源码实现分析
mybatis框架源码的实现相对spring来说要简单的很多,模块的分工也很明确,每个模块的代码量也不是很大,比较容易阅读,如果你对设计模式很了解的话。里面用到很多设计模式,如工厂模式、代理模式、装饰器模式、适配器模式等等,都是值得平时开发学习和借鉴的,都说高手的代码都是向高级框架靠拢,谁知道他是自己设计还是看了源码学习的呢,对不?
2018-09-11
11 / 15