- 博客(6)
- 收藏
- 关注
原创 设计模式:工厂方法模式
定义:定义一个用于创建对象的接口,让字类决定实现哪一个类型,factory method 使得一个类的实例化延迟到字类1.工厂方法模式遵守软件设计原则(close-open)开闭原则:对拓展开放,对修改关闭2.单一职责原则:各个对象固定自己的原则应用场景: 1.当你不知道该使用对象的确切类型的时候 2.当你希望为库或者框架提供可拓展的内部组件的方法时主要优点: 1.将具体的产品业务和创建解耦 2.符合单一职责原则 3.符合开闭原则源码中的...
2021-04-23 17:43:14 164
原创 mysql索引建立规则
索引设计原则1、代码先行,索引后上不知大家一般是怎么给数据表建立索引的,是建完表马上就建立索引吗?这其实是不对的,一般应该等到主体业务功能开发完毕,把涉及到该表相关sql都要拿出来分析之后再建立索引。2、联合索引尽量覆盖条件比如可以设计一个或者两三个联合索引(尽量少建单值索引),让每一个联合索引都尽量去包含sql语句里的where、order by、group by的字段,还要确保这些联合索引的字段顺序尽量满足sql查询的最左前缀原则。3、不要在小基数字段上建立索引索引基数是指这
2021-04-23 15:59:39 1419
原创 mysql索引优化
Explain: 使用该关键词可以进行索引分析关键字:filtered ,partitions ,id ,select_type ,type ,possible_keys ,key ,key_len ,Extra filtered:rows*filtered/100 算出当前表和其他关联表的行数partitions:分区表id:执行的先后顺序,id越大,执行的优先级越高,否则越低select_type: SIMPLE:简单查询 primary:复杂查询中最外层的sel...
2021-04-20 19:13:23 1218
原创 设计模式:单例模式
保证一个类只有一个实例,并提供一个全局访问点单例模式可以通过反射暴力破坏单例懒汉式:延时加载方案,在使用时再创建package com.xiaobai.dataStructure.ssingleton;/** * 单例模式 懒汉式 * 无法防止反射暴力获取对象 * @Author xiaoBai * @Date 2021-04-20 */public class LazySingleton { private volatile static LazySinglet
2021-04-20 18:17:42 173 2
原创 mysql索引底层数据结构和算法
一:mysql底层包含的数据结构红黑树 二叉树 hash B+树二:索引的概念:索引是帮助mysql高效获取数据的排好顺序的数据结构三:mysql底层为什么使用innodb二叉树 :单边自增的列对于查找效率没有提升,连续数据会转为链表 红黑树 :树高度不可控,自平衡后会有很多叶子节点 B树 :相对于B+树来说没有双向指针,区间检索效率会比B+效率低,而且父节点会有数据存储,B+树所有的数据都存在于叶子节点 B+树 :B+树在叶子节点有双向指针 ,特点排好序的数据,通过指针获取所有
2021-04-19 14:16:46 107
原创 数据结构和算法
判断一个数是否为2的指数幂 /** * 判断一个正整数是否为2的指数幂 * @param n * @return */ private static boolean if2(int n){ // & 转2进制之后,判断两个位置比对 都为1为1 否则为0 return (n & (n - 1)) == 0; }...
2021-04-09 16:49:38 67
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人