大家好,我是程序员啊粥. 相信在大家的工作中,有很多的功能都需要用到 count(*) 来统计表中的数据行数.同时,对于一些大数据的表,用 count 都是瑟瑟发抖,往往会结合缓存等进行处理. 那么,我们今天就来分析一下,在 InnoDB 中,关于 count 的一些处理措施和优化. 常见的 count 使用方式有三种 count(*) count(主键 Id)/count(某个字段) count(1) 首先 count(*).count(主键 Id)/count(某个字段) 和 count(1…
大家好,我是程序员啊粥,前边给大家分享了 *MySQL InnoDB 索引模型 在 MySQL InnoDB 中,为什么 delete 删除数据之后表数据文件大小没有变 如何计算一个索引的长度 如何查看 SQL 的执行计划 以上几篇都是偏理论知识,从今天开始,我们开始 MySQL 索引实战内容,具体介绍一下 MySQL 索引的用法. 首先介绍一下索引的相关语法: 索引语法 -- 创建索引 CREATE INDEX indexName ON table_name (column_name); AL…
大家好,我是程序员啊粥. 今天给大家分享一个我遇到过的比较少见的面试题,那就是 MySQL 中如何计算一个索引的长度. 说实话,我第一次遇到这个问题的时候想当然的以为索引长度就是我们建表时定义的字段长度,如果是联合索引,那就是多个字段长度相加. 事实证明,在我说出上述回答之后,面试官就让我带着简历跑路了. 于是乎,我仔细查阅了相关资料,发现索引长度这个计算方式还是有点意思的,索性给大家分享一下. 首先,我们要知道 MySQL Innodb 引擎对于索引的长度是有限制的,最大为 767 字节. 你…
序言 这些资料,你一定会用到!我相信很多人都在说,iOS行业不好了,iOS现在行情越来越难了,失业的人比找工作的人还要多.失业即相当于转行,跳槽即相当于降低自己的身价.那么做iOS开发的你,你是否在时刻准备着跳槽或者转行. 在分享这篇面试文章的小编先分享自己建的一个"iOS程序员开发者的群""638302184"每天都会有开发者分享案例一起探讨工作中的问题,群里还会分享阿里面试题及各大BAT面试题,你不会的有人解答.我不会的请伸手帮助一下. 先提供一些面试公司核心岗…
本篇文章我们主要探讨 一下如果try {}语句中有return,这种情况下finally语句还会执行吗?其实JVM规范是对这种情况有特殊规定的,那我就先上代码吧! public class FinallyTest { public int method() { int x = 1; try{ ++ x; return x; }catch(Exception e){ }finally{ ++ x; } return x; } public static void main(String[] arg…
前言 说起Java面试中最高频的知识点非多线程莫属.每每提起多线程都绕不过一个Java关键字--synchronized.我们都知道该关键字可以保证在同一时刻,只有一个线程可以执行某个方法或者某个代码块以保证多线程的安全性.那么,本篇文章我们就来揭开这个synchronized的面纱. 线程安全的实现方法 在详细介绍synchronized之前,我们首先了解一下实现线程安全的不同方式,了解synchronized是如何实现线程安全的理论基础,做到心中有数.目前主要有三种线程安全实现方法:互斥同步…
接着前几天的两篇文章,继续解析JVM面试问题,送给年后想要跳槽的小伙伴 万万没想到,面试中,连 ClassLoader类加载器 也能问出这么多问题..... 万万没想到,JVM内存区域的面试题也可以问的这么难? 三.GC垃圾回收 1.GC是什么?为什么要GC GC:垃圾收集,GC能帮助我们释放jvm内存,可以一定程度避免OOM问题,但是也无法完全避免.Java的GC是自动工作的,不像C++需要主动调用. 当new对象的时候,GC就开始监控这个对象的地址大小和使用情况了,通过可达性分析算法寻找不可…
安装 使用docker安装,注意要安装tag后缀为management的镜像(包含web管理插件),我这里使用的是rabbitmq:3.8-management 1. 拉取镜像 shell docker pull rabbitmq:3.8-management ¨G0G shell docker run --name rabbitmq --hostname rabbitmq -d -p 15672:15672 -p 5672:5672 rabbitmq:3.8-management 3. 访问w…
## 前言 随着当今处理器计算能力愈发强大,可用的核心数量越来越多,各个应用对其实现更高吞吐量的需求的不断增长,多线程 API 变得非常流行.在此背景下,Java自JDK1.5 提供了自己的多线程框架,称为 [Executor 框架](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html). ## 1. Executor 框架是什么? ### 1.1 简介 Java Doc中是这么描述的 > An…
前言 上文我们介绍了JDK中的线程池框架Executor.我们知道,只要需要创建线程的情况下,即使是在单线程模式下,我们也要尽量使用Executor.即: ExecutorService fixedThreadPool = Executors.newFixedThreadPool(1); //此处不该利用Executors工具类来初始化线程池 但是,在<阿里巴巴Java开发手册>中有一条 [强制]线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方…