自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 分表方式

水平分表针对数据量太大1、%取模就是取余(分表永远在20以内)做法:设置求模数,分表key %求模数 =分表的key好处:永远不会超过指定的表数量2、/取余就是得出结果(分表的数量无限多)做法:设置一个表最大的数量,分表key /表最大数量 =分表key好处:可以控制一张表数据的最大数据量垂直分表针对字段太多,解决表的io问题1、select...

2020-01-27 19:41:18 301

原创 幻读

更改不是幻读,新增是幻读幻读的问题1.语义上,锁表的行数可能会变化2.数据一致性会有问题,binlog同步问题(把所有行都加上锁,阻止不了新增的语句)解决幻读间隙锁(保证锁了不能新增)...

2019-06-29 23:11:10 928

原创 一条语句为什么执行慢

查询长时间不返回 等MDL锁 有线程持有MDL写锁(可以kill掉) 等flush flush table会导致表被关掉,会等待表上所有的语句执行完毕 等行锁 查询占用写锁sys.innodb_lock_waits查询慢 没有lock in share mode慢(保证一致性读,就需要使用日志回滚100000次) 加上lock in sh...

2019-06-28 23:08:41 101

原创 sql逻辑相同但性能差距大

sql语句中的函数会导致索引失效隐式转换(id=123(varchar))关联查询两个表的字符集不一样(字符集会转乘他的超集)

2019-06-27 23:04:50 132

原创 正确的显示随机消息

mysql> select word from words order by rand() limit 3;扫描行数2003,自己看扫描行数三种rand方法

2019-06-26 23:08:56 93

原创 order by 如何工作

explain分析Extra字段中的'Using files'表示需要排序,mysql给每个线程分配内存用于排序select city,name,age from t where city='杭州' order by name limit 1000 ;1、初始化sort_buffer,确定将需要返回的字段放入2、从索引city中找到满足条件的主键ID3、到主键ID索引,...

2019-06-23 22:20:42 87

原创 count(*)的实现方式

引擎对比 事务 并发能力 数据安全 count(*) InnoDb 把 MyISAM 表的总行数存在磁盘里 引擎对比 count(*) InnoDb 读取每一行记录做累加 MyISAM 表的总行数存在磁盘里(加where条件一样很慢) MV...

2019-06-22 23:29:23 182

原创 数据删了一半,表文件大小不变

表的空间回收InnoDB:表结构定义和数,mysql 8.0之前放在以.frm为后缀的文件里,mysql8.0之后把结构放在系统数据表中(表结构空间小)innodb_file_per_tableon 每个表存储在.ibd为后缀的文件中(drop table系统会直接删除这个文件,容易管理)推荐 删除行,表空间没有被回收? 数据页复用:随意使用(delete...

2019-06-22 00:00:37 279

原创 Mysql会选错索引

实例:delete from t;//整表删除call idata(); //执行存储过程select * from t where a between 10000 and 20000;这里没有用到a索引。为什么?优化器选择索引的依据:扫描行数、是否使用临时表、是否排序(order by有没有用上)基数:索引上不同值的个数,基数越大,索引区分度越好(相当于唯一索引,查到当...

2019-06-17 23:27:05 142

原创 表锁和全局锁

目录锁的作用:处理并发问题锁的分类:全局锁表级锁行锁锁的作用:处理并发问题锁的分类:全局锁命令:Flush tables with read lock(FTWRL) ,这个库处理只读状态全库逻辑备份问题:1、主库备份,业务停摆 2、从库备份,不能执行binlog,导致主从延迟(在不支持事物的引擎下可以使用)有事务机制的备份:mysqldump ...

2019-06-13 21:23:03 93

原创 索引

目录哈希表有序数组搜索树索引普通索引唯一索引覆盖索引索引模型哈希表用哈希函数把key转换成确定的位置问题:哈希函数算出的位置相同怎么处理解决:相同位置下还有一个链表,没有顺序(插入方便,查询费事)有序数组用身份证做索引有序排列吗?搜索树二叉树(100w节点,树高20,一次可能要访问20个数据块(都是在磁盘里,所以效率很低)),n叉树更...

2019-06-11 22:37:40 96

原创 事务 隔离性

数据库的多版本并发控制(MVCC)多个事务同时执行会出现的问题脏读不可重复读幻读事务隔离级别读未提交:事务没提交,别的事务可以看到读提交:事务提交,别的事务才能看到(视图)可重复读:执行过程中,事务看到的数据跟启动时一样。未提交变其它事务不可见(视图),场景:统计当前的数据情况,新加入的数据不会影响,begin transaction不启动事物,第一条语句才...

2019-06-10 22:31:19 83

原创 SQL更新语句执行

分析器:解析知道这是一条更新语句优化器:决定使用ID索引执行器:具体执行(包括运行+1之类的)redolog:crash-safe能力,write pos和checkpoint的概念。 引擎层innodb,在数据库读取的时候不会用redolog合并,会用change buffer中的数据binlog:为什么只能用于归档?没有提交状态? ...

2019-06-09 22:45:18 304

原创 SQL查询语句执行

show processlist连接器:客户端建立连接、获取权限(非实时权限)、维持和管理链接查询缓存:key-value形式,如果命中直接返回查询结果,弊端:失效非常频繁,将参数query_cache_type设置成demand,不缓存,可以使用SQL_CACHE来显示缓存,8.0开始测底没有分析器:词法分析(识别表名、识别列、select关键字)、语法分析(分析语句是否正确)...

2019-06-09 21:10:47 118

原创 面向对象

面向对象

2019-06-09 19:09:17 94

原创 线性排序

线性排序

2019-06-09 19:08:08 224

原创 哈希算法

哈希算法。。

2019-06-09 19:07:16 176

原创 散列表

散列表的特点

2019-06-09 19:06:43 211

原创 排序

目录生词解释几种常用的排序算法比较排序算法的执行效率分析方法排序算法分析冒泡排序插入排序选择排序生词解释 概念 原地排序 空间复杂度是O(1)的排序算法 稳定性 排序后,相等元素间先后顺序不变(例子:订单,下单时间、订单金额) 几种常用的排序算法比较排序算法 时间复杂度 是否基于比较 冒泡、插入、选...

2019-06-09 19:06:01 113

原创 二叉树

二叉树的特点。。。。。。。。。

2019-06-09 19:05:33 100

原创 排序

分析一个“排序算法”:排序算法的执行效率 1、最好情况、最坏情况、平均情况时间复杂度(有序度) 2、时间复杂度的系数、常数、低阶 3、比较次数和交换(或移动)次数排序算法的内存消耗(原地排序)排序算法的稳定性 原地排序 稳定性 时间复杂度 含义 冒泡排...

2019-06-03 23:55:22 83

原创 递归

递归:去的过程叫“递”,回来的过程叫“归”满足条件:1、一个问题的解可以分解为几个子问题的解2、这个问题与分解之后的子问题,除了数据规模不同,求解思路一致3、存在递归终止条件(不能无限循环)如何写出递归代码1、基于规律写出递推公式2、推敲终止条件3、将递推公式和终止条件翻译成代码注意事项:1、警惕堆栈溢出(在代码中使用全局变量保证执行次数)...

2019-06-03 22:21:49 93

原创 队列

存储特点:先进先出,后进后出队列实现实现方式 指针 入队列 出队列 边界条件 顺序队列 head、tail tail++、数据搬移 head++ 链式队列 head、tail tail->next= new_node, tail = tail->next he...

2019-06-03 21:29:06 88

原创

存储特点:先进后出、后进先出栈特点: 构成 特点 适用场景 栈 加减乘除(两个栈,一个存数字,一个存符号(根据运算优先级来确定是否压入还是先运算前面的)) 浏览器的前进后退(两个栈,一个代表前进历史,一个代表后退历史) 括号匹配(大括号栈,小括号栈,中括号栈) 复杂度分析:...

2019-06-02 00:25:41 67

原创 链表

存储特点:1、零散内存空间和相同类型的数据 2、线性表(数据之间只有前后关系)下标随机访问效率低()链表特点: 构成 特点 适用场景 单链表 结点(数据+后继指针) 头结点:第一个结点(记录链表基地址) 尾结点:最后一个结点(指针指向NULL) 循环链表 同上 尾结点指针指向链表的头结点 约瑟夫...

2019-05-31 22:01:38 80

原创 数组

存储特点:1、连续内存空间和相同类型的数据 2、线性表(数据之间只有前后关系)复杂度分析: 插入 删除 查询 有序数组 O(n) O(1),删除多个节点,先标记,空间不够,再真正删除 下标随机访问O(1),值查询(二分查找O(logn)) 无序数组 O(1)替换技巧 O(1) 下标随机访问O(1) 其他:...

2019-05-30 12:27:24 71

原创 均摊时间算法和数组

均摊时间算法场景:个别情况时间复杂度高操作:将较高时间复杂度耗时平摊到其他时间复杂度上一般情况:均摊时间复杂度 = 最好时间复杂度数组(C/C++,Javascript,Java)(哪个跟算法中的数组一样,哪个不一样呢?)误区:语言中的数组和算法中的数组并不完全一致C/C++:只能保存同一个类型Java:有一个栈指向数组的其他元素(间接寻址?) ...

2019-04-16 09:05:39 357

原创 项目分析

       做了各种项目,但是没有收获,主要是因为,做完就完了。如果能有一段稳定的时间,单独的去做一个项目,然后耐心去总结,提升的速度会非常快,从今天开始每个项目我都会写一个心得贴。        项目质量的几个级别                1、实现功能就好了                2、没有重复代码,数据库的操作分离出配置(维护性良好)                3、针对需求的...

2018-07-09 14:04:06 153

原创 递归上层调用部分由于下层使用了return语句直接结束,无法累计所有的数据?

参数$data中一维和二维都有可能有所需要的数据,但是由于return,会执行的最底层的return直接就返回了,这个时候最好使用static静态变量,不用return语句

2017-08-04 15:42:21 448

原创 面向接口编程

1、首先定义一个抽象类,定义一些抽象方法,专门用来让子类实现2、在抽象类中的一个静态方法,使用延迟绑定用于实例化子类(静态方法中可以使用非静态方法),调用子类的特殊属性(例如model名,字段),可以针对不同子类插入不同数据表的需求(此方法以后只用针对抽象类的抽象方面进行实现就好了,不需要再去写创建的SQL语句)

2017-08-03 20:40:33 150

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除