3 凯凯兹

尚未进行身份认证

我要认证

code..

等级
TA的排名 2w+

MySQL不同的 count 用法区别(InnoDB)

不同的 count 用法问:在 select count(?) from t 这样的查询语句里面,count(*)、count(主键 id)、count(字段) 和 count(1) 等不同用法的性能,有哪些差别。所以结论是:按照效率排序的话,count(字段)<count(主键 id)<count(1)≈count(),所以我建议你,尽量使用 count()。今天详细说明一下这几种用法的性能差别。需要注意的是,下面的讨论还是基于 InnoDB 引擎的。这里,首先你要弄清楚 count(

2020-09-13 19:53:40

为什么表数据删了一半,表文件大小不变?

1:为啥删除了表的一半数8据,表文文件大小没变化?因为delete 命令其实只是把记录的位置,或者数据页标记为了“可复用”,但磁盘文件的大小是不会变的。也可以认为是一种逻辑删除,所以物理空间没有实际释放,只是标记为可复用,表文件的大小当然是不变的啦!2:表的数据信息存在哪里?表数据信息可能较小也可能巨大无比,她可以存储在共享表空间里,也可以单独存储在一个以.ibd为后缀的文件里,由参数innodb_file_per_table来控制,老师建议总是作为一个单独的文件来存储,这样非常容易管理,并且在不需要

2020-09-13 19:00:00

让你的InnoDB更新插入操作变得更‘快’(刷脏页的控制策略)

刷脏页的控制策略告诉InnoDB 你(磁盘)有多‘快’(innodb_io_capacity)你的MySQL如果在插入时,反应很迟钝,那体验肯定非常不爽【滑稽一点都不敏感!其实可能的原因,不是它真的不行,而是你告诉它:“你不行!”接下来,我就来和你说说 InnoDB 脏页的控制策略,以及和这些策略相关的参数。首先,你要正确地告诉 InnoDB 所在主机的 IO 能力,这样 InnoDB 才能知道需要全力刷脏页的时候,可以刷多快。这就要用到 innodb_io_capacity 这个参数了,

2020-09-13 10:34:48

ORA-12638: 身份证明检索失败

问题连接此Oracle服务,弹出错误:ORA-12638: 身份证明检索失败解决方案选中NTS,将其挪到左侧

2020-09-07 11:02:07

Redis指令参考手册

set key valueget keymset key value key value...mget key key...setnx key valuemsetnx key value key valuegetrange start endsetrange offset valuestrlen keyincr keydecr keyincrby key incrementdecrby key incrementflushallhset key field val

2020-08-31 15:21:08

GC算法和收集器

GC算法和收集器参考:周志明《深入理解java虚拟机》第二版如何判断对象可以被回收堆中几乎放着所有的对象实例,对堆垃圾回收前的第一步就是要判断哪些对象已经死亡(即不能再被任何途径使用的对象)引用计数法给对象添加一个引用计数器,每当有一个地方引用,计数器就加1。当引用失效,计数器就减1。任何时候计数器为0的对象就是不可能再被使用的。这个方法实现简单,效率高,但是目前主流的虚拟机中没有选择这个算法来管理内存,最主要的原因是它很难解决对象之前相互循环引用的问题。所谓对象之间的相互引用问题,通过下

2020-08-28 11:16:54

堆排序-排序算法(七)

堆排序实现思路将数组按照堆(最大堆、最小堆都可以)的结构进行整理源数据:73,6,72,88,85,83,48,60,57,42整理后:88,85,83,60,73,72,48,6,57,42此时已经是一个最大堆,第一个元素,肯定是最大的,循环删除堆最大值,删除最大值把堆重新建立,把删除的值保存在另一个数组中建立堆,logN,共建立N次额外开辟一个数组存放结果此时,时间复杂度为O(NlogN),空间复杂度为O(2N),不划算呐优化版:下面a为数组,size为数组长度将数组按

2020-07-26 20:22:33

归并排序-排序算法(六)

归并排序前言基本思想归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用。首先考虑下如何将2个有序数列合并。这个非常简单,只要从比较2个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。下面是归并的一个demo//将有序数组a[]和b[]合并到c[]中void MemeryArray(int a[], int n, int b[], int m, int c[]){ in

2020-07-25 16:09:07

快速排序-排序算法(五)

快速排序前言先从数列中取出一个数作为key值;将比这个数小的数全部放在它的左边,大于或等于它的数全部放在它的右边;对左右两个小数列重复第二步,直至各区间只有1个数。基本思想初始时 i = 0; j = 9; key=7272657886042837348850123456789由于已经将a[0]中的数保存到key中,可以理解成在数组a[0]上挖了个坑,可以将其它数据填充到这来。从j开始向前找一个比key小的数。当j=8,符

2020-07-25 14:43:48

希尔排序-排序算法(四)

希尔排序前言数据序列1: 13-17-20-42-28 利用插入排序,13-17-20-28-42. Number of swap:1;数据序列2: 13-17-20-42-14 利用插入排序,13-14-17-20-42. Number of swap:3;如果数据序列基本有序,使用插入排序会更加高效。基本思想在要排序的一组数中,根据某一增量分为若干子序列,并对子序列分别进行插入排序。然后逐渐将增量减小,并重复上述过程。直至增量为1,此时数据序列基本有序,最后进行插入排序。实现过程

2020-07-19 20:38:07

插入排序-排序算法(三)

插入排序基本思想在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。实现过程代码实现public static void insert_sort(int array[],int lenth){ int temp; for(int i=0;i<lenth-1;i++){ for(int j=i+1;j>0;j--){ if(array[j]

2020-07-19 18:32:25

选择排序-排序算法(二)

选择排序基本思想在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换;第二次遍历n-2个数,找到最小的数值与第二个元素交换;。。。第n-1次遍历,找到最小的数值与第n-1个元素交换,排序完成。过程图解算法特点稳定平均时间复杂度:O(n2)额外空间复杂度:O(1)最坏情况时间复杂度:O(n2)最好情况时间复杂度:O(n2)代码实现public static void select_sort(int array[],int lenth){

2020-07-19 16:06:25

冒泡排序-排序算法(一)

冒泡排序基本思想两个数比较大小,较大的数下沉,较小的数冒起来。过程比较相邻的两个数据,如果第二个数小,就交换位置。从后向前两两比较,一直到比较最前两个数据。最终最小数被交换到起始的位置,这样第一个最小数的位置就排好了。继续重复上述过程,依次将第2.3…n-1个最小数排好位置。来个代码实现一下:public static void BubbleSort(int [] arr){ int temp;//临时变量 for(int i=0; i<arr.length

2020-07-19 15:57:56

Swagger生成离线PDF、HTML、WORD、MARKDOWN(全网最简版本)

背景公司最近在使用前后端分离开发项目,立马上手大名鼎鼎的Swagger生成API现需要导出前后端接口文档已经试过Swagger2Marku可以说,配置繁琐、依赖失效、无报错信息。。。。难用的一批,谁用谁知道。。正题今天突然了解了另外一种方式,knife4j工具,集成了swagger,页面比swagger功能更多点,并且支持下载多种文档形式,pdf、md、word、html引入依赖 <dependency> <groupId&gt

2020-07-11 18:50:49

Neo4j数据导入-大量导入(含CSV)

如何将大规模数据导入Neo4j项目需要基于Neo4j开发,由于数据量较大(数千万节点),因此对当前数据插入的方法进行了分析和对比。我本地使用的Neo4j版本为:可选方案目前主要有以下几种数据插入方式:Cypher CREATE 语句,为每一条数据写一个CREATECypher LOAD CSV 语句,将数据转成CSV格式,通过LOAD CSV读取数据。官方提供的Java API —— Batch Inserter大牛编写的 Batch Import 工具官方提供的 neo4j-impo

2020-07-09 19:53:55

Windows下RocketMQ安装部署

一.预备环境1.系统 Windows2. 环境 JDK1.8、Maven、Git二. RocketMQ部署1.下载1.1地址:官网下载地址1.2选择‘Binary’进行下载1.3解压已下载工程2. 配置2.1 系统环境变量配置变量名:ROCKETMQ_HOME变量值:MQ解压路径\MQ文件夹名2.2重启服务器3. 启动3.1 启动NAMESERVERCmd命令框执行进入至‘MQ文件夹\bin’下,然后执行‘start mqnamesrv.cmd’,启动

2020-07-02 20:07:36

震惊!Java并发编程实战,快来看看(仅供学习研究)

本文主要用于学习交流Java并发编程,锤炼Java多线程使用的技能点- 线程池- 线程资源共享- 多线程读写问题使用IP代理方式,从代理商获取IP,每天稳定增加访问量2w(全部博客总量,而非单篇)左右。

2020-06-03 15:43:02

Redis六种淘汰策略

前言将 Redis 用作缓存时, 如果内存空间用满, 就会自动驱逐老的数据。 默认情况下 memcached 就是这种方式, 大部分开发者都比较熟悉。LRU是Redis唯一支持的回收算法. 本文详细介绍用于限制最大内存使用量的 maxmemory 指令, 并深入讲解 Redis 所使用的近似LRU算法。maxmemory 配置指令maxmemory 用于指定 Redis 能使用的最大内存。既可以在 redis.conf 文件中设置, 也可以在运行过程中通过 CONFIG SET 命令动态修改。例如

2020-06-03 16:53:45

收藏!LVS+Keepalived+Nginx高可用负载均衡

LVS负载均衡Linux Virtual Server章文崇博士主导的开源负载均衡项目(原阿里架构)LVS(ipvs)已经集成到Linux内核负载均衡调度器LVS基于四层,工作效率更高网络拓扑图这是Nginx的拓扑图这是LVS拓扑图主要是使用IPVS去实现LVS三种模式LVS-NAT这是普通的模式,不适合并发特别大的情况请求通过LVS服务器,导向不同的REAL Server去,响应结束还需要LVS服务器返回响应报文,是不高可用的一种方案LVS-TUN上行请求,通过L

2020-05-31 14:58:30

Nginx+Keepalived详解以及部署,实现高可用方案

Nginx进程模型master:主进程worker:工作进程master会监控worker,一个worker挂掉,master会再开启一个worker./nginx -s stop./nginx -s quit./nginx -s reload./nginx -t这些nginx都是master交给worker去执行的图为imooc课程,感谢大佬worker抢占机制这两张图讲的是,一个传统的服务器处理客户端请求,是一个client访问,一个worker去处理,此时阻塞,ma

2020-05-31 12:22:22

查看更多

勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取