![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
性能类
文章平均质量分 88
技术类
郑兆辉
这个作者很懒,什么都没留下…
展开
-
MySQL 慢查询记录原理和内容解析
背景本文并不准备说明如何开启记录慢查询,只是将一些重要的部分进行解析。如何记录慢查询可以自行参考官方文档:5.4.5 The Slow Query Log本文使用 Percona 版本来开启参数 log_slow_verbosity,得到了更详细的慢查询信息。通常情况下信息没有这么多,但是一定是包含关系,本文也会使用 Percona 的参数解释说明一下这个参数的含义。一、慢查询中的时间实际上慢查询中的时间就是时钟时间,是通过操作系统的命令获得的时间,如下是 Linux 中获取时间的方式原创 2021-08-30 20:06:41 · 359 阅读 · 0 评论 -
分享:关于 JVM 内存的 N 个问题和定位工具
JVM的内存区域是怎么划分的?JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;有些区域会抛出OOM异常,有些则不会,了解JVM的内存区域划分以及特征,是定位线上内存问题的基础。那么JVM内存区域是怎么划分的呢?首先是程序计数器(Program Counter Register),在JVM规范中,每个线程都有自己的程序计数器。这是一块比较小的内存空间,存储当前线程正在执行的Java方法的JVM指令地址,即字节码的行号。如果正在执行Native方法,则这个计数器为空。该内存区域是原创 2021-08-23 11:02:04 · 136 阅读 · 0 评论 -
Redis实战 | Redis数据5种类型详解
Redis是目前非常主流的KV数据库,它因高性能的读写能力而著称,其实还有另外一个优势,就是Redis提供了更加丰富的数据类型,这使得Redis有着更加广泛的使用场景。那Redis提供给用户的有哪些数据类型呢?主要有:string(字符串)、List(列表)、Set(集合)、Hash(哈希)、Zset(有序集合)、HyperLogLogs(计算基数用的一种数据结构)、Streams(Redis 5.0提供一种建模日志用的全新数据结构)。需要注意的是这里说的数据类型是指Redis值的数据类型,而Redis转载 2021-08-17 17:34:14 · 441 阅读 · 0 评论 -
大促高并发系统下JVM如何调优
JVM调优实战JVM调优实战以web项目为例。调优主要从两个方面入手,一是tomcat容器的优化,二是JVM虚拟机的调优。调优的原则是控制变量法,先优化tomcat,再优化JVM虚拟机,二者不要同时进行,否则,可能越调性能越差。 下面我们首先来进行tomcat容器的优化。tomcat优化1.禁用AJP服务#优化一:禁用AJP服务,一般是使用Nginx+tomcat的架构,所以用不着AJP协议,所以把AJP连接器禁用。 #将下面的配置注释掉 <Connector port="800转载 2021-08-12 11:32:17 · 687 阅读 · 0 评论 -
MySQL中IN和OR的查询效率和区别
最近遇到了一个网站卡死的问题,但是过了几分钟网站又好了,我让工作了 4 年的一个同事排查问题,他找了半天,毫无头绪。然后,我帮他找到了定时任务,其中有个 sql 查询,执行效率很慢,我建议将 or 改为 in,效率提升了几百倍。下面我们一起回顾一下这个问题。场景描述两个表关联查询 table1 的数据量接近 100 万 table2 的数据量接近 900 万 查询条件中的 title 字段没有加索引 原始查询语句SELECT a.id as id FROM `table1` as a转载 2021-08-12 11:28:08 · 1809 阅读 · 0 评论 -
SQL高性能优化指南!35+条优化建议立马GET
由于工作需要,最近做了很多 BI 取数的工作,需要用到一些比较高级的 SQL 技巧,总结了一下工作中用到的一些比较骚的进阶技巧,特此记录一下,以方便自己查阅,主要目录如下:SQL 的书写规范 SQL 的一些进阶使用技巧 SQL 的优化方法其他相关阅读:后端程序员必备:书写高质量SQL的30条建议 MySQL高性能优化规范建议,速度收藏SQL 的书写规范在介绍一些技巧之前,有必要强调一下规范,这一点我发现工作中经常被人忽略,其实遵循好的规范可读性会好很多,应该遵循哪些规范呢1、转载 2021-08-10 11:26:38 · 449 阅读 · 1 评论 -
万字长文:细谈Linux、JDK、Netty中NIO与零拷贝
一、先理解内核空间与用户空间Linux 按照特权等级,把进程的运行空间分为内核空间和用户空间,分别对应着下图中, CPU 特权等级分为4个,Linux 使用 Ring 0 和 Ring 3。内核空间(Ring 0)具有最高权限,可以直接访问所有资源,; 用户空间(Ring 3)只能访问受限资源,不能直接访问内存等硬件设备,必须通过系统调用陷入到内核中,才能访问这些特权资源。上面的Ring图可以简化成:内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环转载 2021-08-10 11:17:37 · 380 阅读 · 0 评论 -
SQL优化最干货总结笔记!
前言网上关于SQL优化的教程很多,但是比较杂乱。而且百度字节等大厂的面试难度越来越高,无论从大厂还是到小公司,一直未变的一个重点就是对SQL优化经验的考察。一提到数据库,先“说一说你对SQL优化的见解吧?”。SQL优化已经成为衡量程序猿优秀与否的硬性指标,甚至在各大厂招聘岗位职能上都有明码标注,所以近日有空我专门花费了大量的时间查找资料、修改、排版,希望能够帮助到有需要的朋友,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。有朋友疑问到,SQL优化真的有这么重要么?如下图所示,SQ转载 2021-08-09 10:41:05 · 261 阅读 · 0 评论 -
分库分表精辟解读
文章目录 分库分表介绍: 一、为什么要分库: 二、为什么要分表: 选型介绍: 一、三个问题: 二、中间件对比: 三、概念介绍: 四、两种方案: 分库分表介绍:分库分表的目的是为了系统高并发、高可用。分库和年发表是两回事,两个概念,都是为了防止数据库服务因为同一时间内访问量过大导致宕机而设计的一种应对策略。一、为什么要分库:参考:https://www.cnblogs.com/yanggb/p/11214339.html一般经验来说,转载 2021-08-05 13:24:04 · 86 阅读 · 0 评论 -
count(*) 怎么优化?
前言哈喽,我是狗哥。小伙伴都知道我最近换工作了,薪资、工作内容什么的都是我比较满意的。五月底也面试了有 6、7 家公司,应该拿了有 5 个 offer。这段时间也被问了很多面试题,我打算写一个专题分享出来,希望对你们有所帮助~这期面试官提的问题是:count (1) 和 count (*) 有啥区别?你更推荐用哪个?数据量很大的情况下怎么优化?国际惯例先上思维导图:1.1 往期精彩MySQL 查询语句是怎么执行的?MySQL 索引MySQL 日志MySQL .转载 2021-08-04 10:41:00 · 2596 阅读 · 0 评论 -
从入门到真香!用好Spring Cache公司再也不用担心我搞不定AOP了
前言今天这篇文章是比较偏“教程”一点的文章。但也由浅入深,认真地分析了源码,并且介绍了一些在使用Spring Cache中常见的问题和解决方案,肯定是比简单的入门文档更有深度一些的,相信大家看了之后会有一定的收获。为什么使用缓存前几天我在文章《我是如何把一个15分钟的程序优化到了10秒的》中,提到了一些在代码层面优化性能的方法。其中第一个就是使用缓存。使用缓存是一个很“高性价比”的性能优化方式,尤其是对于有大量重复查询的程序来说。通常来说,在WEB后端应用程序来说,耗时比较大的往往有两个地方转载 2021-08-04 10:39:17 · 107 阅读 · 0 评论 -
为什么索引可以让查询速度变快,你有思考过吗?
概述人类存储信息的发展历程大致经历如下:由于是个人凭着自己理解总结的,因此可能不一定精确,但是毋庸置疑的是,在当代,各大公司机构部门的数据都是维护在数据库当中的。数据库作为数据存储介质发展的最新产物,必然是具有许多优点的,其中一个很大的优点就是存储在数据库中的数据访问速度非常快。数据库访问速度快的一个很重要的原因就在于索引index的作用。也就是这篇文章的主要想介绍的内容,为什么索引可以让数据库查询变快?计算机存储原理在理解索引这个概念之前,我们需要先了解一下计算机存储方面的基本知识转载 2021-08-04 10:16:52 · 327 阅读 · 0 评论 -
Tomcat性能调优:线程设置
说明:一般线程与虚拟内存JVM设置同步设置,两者存在对应关系。1.线程概念说明maxThreads:此连接器将创建的请求处理线程的最大数量, 即可以处理的同时请求的最大数量,默认值为200。minSpareThreads:终保持运行状态的最小线程数。 这包括活动线程和空闲线程。 如果未指定,则使用默认值10。maxConnections: 服务器在任何给定时间将接受和处理的最大连接数。 对于BIO,除非使用执行程序,否则默认值为maxThreads的值,在这种情况下,默认值为执行程序的maxThre转载 2021-08-03 16:28:07 · 6289 阅读 · 0 评论 -
mysql中100w的数据表比1000w的数据表查询更快吗
当我们对一张表发起查询的时候,是不是这张表的数据越少,查询的就越快?答案是不一定,这和mysql B+数索引结构有一定的关系。innodb逻辑存储结构从Innodb存储引擎的逻辑存储结构来看,所有数据都被逻辑的放在一个表空间(tablespace)中,默认情况下,所有的数据都放在一个表空间中,当然也可以设置每张表单独占用一个表空间,通过innodb_file_per_table来开启。mysql> show variables like 'innodb_file_per_table';转载 2021-08-03 16:24:28 · 239 阅读 · 0 评论 -
还在为mysql性能优化烦恼?这些总结可以给你扩展思路
MySQL性能最大数据量抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。微信搜索web_resource 关注获取更多推送。博主曾经操作过超过4亿行数据的单表,分页查询最新的20条记录耗时0.6秒,SQL语转载 2021-08-03 16:23:04 · 118 阅读 · 0 评论 -
彻底搞懂NIO效率高的原理
前言这篇文章读不懂的没关系,可以先收藏一下。笔者准备介绍完epoll和NIO等知识点,然后写一篇Java网络IO模型的介绍,这样可以使Java网络IO的知识体系更加地完整和严谨。初学者也可以等看完IO模型介绍的博客之后,再回头看这些博客,会更加有收获。NIO相比BIO的优势NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式转载 2021-08-03 16:20:07 · 674 阅读 · 1 评论 -
MySQL千万级数据的表如何优化
这里先说明一下,网上很多人说阿里规定500w数据就要分库分表。实际上,这个500w并不是定义死的,而是与MySQL的配置以及机器的硬件有关。MySQL为了提升性能,会将表的索引装载到内存中。但是当表的数据到达一定的量的时候,会导致内存无法存储这些索引,无法存储索引,就只能进行磁盘IO,从而导致性能下降。实战调优我这里有张表,数据有1000w,目前只有一个主键索引CREATE TABLE `user` ( `id` int(10) NOT NULL AUTO_INCREMENT, `un转载 2021-08-02 10:25:42 · 253 阅读 · 0 评论 -
索引设计(索引设计详细规范)
索引命名规范:单值索引,建议以 idx_ 为开头,字母全部小写。例如:alter table t1 add key idx_r1(r1);组合索引,建议以 dx_multi_ 开头,字母全部小写。例如:alter table t1 add key idx_multi_1(r1,r2,r3) ;唯一索引,建议以 udx_ 为开头,字母全部小写;如果是多值唯一索引,则命名方式类似 udx_multi_1 等。例如:alter table t1 add unique key ud转载 2021-07-30 15:03:29 · 2066 阅读 · 0 评论 -
Tomcat优化大全,进来看了,真就会了
前言Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。相信大家对于 Tomcat 已经是非常熟悉了,本篇将介绍tomcat的常见优化。那么为什么要对tomcat进行优化呢。因为Tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈。相信大家看完这篇博客,会有一定的收获。Tomcat连接器协议优化Tomcat 连接器的三种方式: bio、ni转载 2021-07-26 14:43:12 · 3151 阅读 · 0 评论 -
SQL 查询优化之 WHERE 和 LIMIT 使用索引的奥秘
奇怪的慢sql我们先来看2条sql第一条:select*fromacct_trans_logWHEREacct_id =1000000000009000757orderbycreate_timedesclimit0,10第二条:select*fromacct_trans_logWHEREacct_id =1000000000009003061orderbycreate_timedesclimit0,10表的索引及数据...转载 2021-07-26 14:14:08 · 5306 阅读 · 2 评论