常见SQL错误用法1.LIMIT语句分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般DBA想到的办法是在type,name,create_time字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。SELECT*FROMoperationWHEREtype='SQLStats'ANDname=...
(一)重构原则1、何谓重构对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。另一种解释是:使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。重构不止是代码整理,它提供了一种高效且受控的代码整理技术2、为何重构改进软件设计:如果没有重构,程序的设计会逐渐变质,重构很像是在整理代码,你所做的...
注释不要给不好的名字加注释,一个好的名字比好的注释更重要不要“拐杖注释”,好代码>坏代码+好注释在文件/类级别使用全局注释来解释所有部分如何工作一定要给常量加注释团队统一定义标记TODO 待处理的问题FIXME 已知有问题的代码HACK不得不采用的粗糙的解决方案在注释中用精心挑选的输入输出例子进行说明注释应该声明代码的高...
1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目的;第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。2.尽量...
MySQLcount(1)真的比count(*)快么?反正同事们都是这么说的,我也姑且觉得对吧,那么没有自己研究一下究竟?如果我告诉你他们一样,你信么?有Where条件的count,会根据扫码结果count一下所有的行数,其性能更依赖于你的Where条件,所以文章我们仅针对没有Where的情况进行说明。MyISAM引擎会把一个表的总行数记录了下来...
使用slf4j使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。实现方式统一使用:Logback框架打日志的正确方式什么时候应该打日志当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定为的。当你碰到if…else或者switch这样的分支时,要在分支的首行打印日志,用来确定进入...
一、EXPLAIN做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len列...
ShowDoc是什么每当接手一个他人开发好的模块或者项目,看着那些没有写注释的代码,我们都无比抓狂。文档呢?!文档呢?!Showmethedoc!!程序员都很希望别人能写技术文档,而自己却很不希望要写文档。因为写文档需要花大量的时间去处理格式排版,想着新建的word文档放在哪个目录等各种非技术细节。word文档零零散散地放在团队不同人那里,需要文...
1基础篇01面向对象→什么是面向对象面向对象、面向过程面向对象的三大基本特征和五大基本原则→平台无关性Java如何实现的平台无关JVM还支持哪些语言(Kotlin、Groovy、JRuby、Jython、Scala)→值传递值传递、引用传递为什么说Java中只有值传递→封装、继承、多态什么是多态、方法重写与重载Java的继承与实现构造函数与默认构...