收藏:一些比较好的Redis 性能优化思路总结
在一些网络服务的系统中,Redis 的性能,可能是比 MySQL 等硬盘数据库的性能更重要的课题。比如微博,把热点微博[1],最新的用户关系[2],都存储在 Redis 中,大量的查询击中 Redis
15个必知的Mysql索引失效场景,别再踩坑了!
背景无论你是技术大佬,还是刚入行的小白,时不时都会踩到Mysql数据库不走索引的坑。常见的现象就是:明明在字段上添加了索引,但却并未生效。前些天就遇到一个稍微特殊的场景,同一条SQL语句,在某些参数下生效,在某些参数下不生效,这是为什么呢?另外,无论是面试或是日常,Mysql索引失效的通常情况都
为什么mysql的count()方法这么慢?
兄弟们。浅浅的炫个富吧。说出来你们可能不信。手机你们有吗?我有。短信,知道吧?一条一毛钱,我天天发。你敢想吗?所以说,年轻人,有钱是真的好。今天,我们就以短信为话题聊起。短信,它又叫SMS。 比如说,你有一张短信表(sms),里面放了各种需要发送的短信信息。s
慢查询性能优化实践
项目组接到两家客户反馈,部分生产统计报表查询缓慢,甚至某些报表无法查询出1个月的统计数据。
如何写出高性能 SQL 语句?
1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认
【译】SQL性能优化:关于查找慢查询的几种方法分享
SQL Server的查询运行太慢了,以至于大家都不太喜欢,介绍几种方法可以快速跟踪它们,以便处理这些查询!
数据库性能实战干货!MySQL 高可用架构实践
你好,我是悟空。业界流传一句话:没有做过运维的程序员不是好架构师。不知是真是假。前言对于 MySQL 数据库作为各个业务系统的存储介质,在系统中承担着非常重要的职责,如果数据库崩了,那么对于读和写数据库的操作都会受到影响。如果不能迅速恢复,对业务的影响是非常大的。之前 B 站不是出过
【全网首发】数据库系列:覆盖索引和避免回表
1 介绍在MySQL数据库查询过程中,索引覆盖和避免不必要的回表,是减少检索步骤,提高执行效率的有效手段。下面从这两个角度分析如何进行MySQL检索提效。2 数据准备模拟一个500w数据容量的部门表 emp,表结构如下,并通过工具模拟500w的数据:CREATE TABLE `emp` (
16条MySQL使用规范,减少MySQL80%问题!
上篇文章介绍了如何创建合适的MySQL索引,今天再一块学一下如何更规范、更合理的使用MySQL?合理规范的使用MySQL,可以大大减少开发工作量和线上问题,并提升SQL查询性能。我精心总结了这16条MySQL规约,分享给大家,欢迎评论指正。1. 禁止使用select *阿里开发规范中,有这
【译】为什么我的数据库很慢,10 个查询反而比 1 个查询更快?
在 Ufonia,我们最近解决了一个数据库性能问题,该解决方案起初似乎违反直觉,但对于复杂的现实世界数据模型来说却是一项必不可少的技术。这是我们如何做到的。对于许多学习 UI、API 和数据模型的软件工程师来说,构建待办事项应用程序或 Twitter 克隆是一种通行仪式。首先构建一个看起来像
​Mysql数据库查询好慢,除了索引,还能因为什么?
 我熟练应用ctrl c和ctrl v 开发curd代码好多年了。mysql查询为什么会慢,关于这个问题,在实际开发经常会遇到,而面试中,也是个高频题。遇到这种问题,我们一般也会想到是因为索引。那除开索引之外,还有哪些因素会导致数据库查询变慢呢?有哪些操作,可以提升mysq
MySQL 连接怎么保活?
多年前开发过一个异步发送订单短信、邮件通知的守护程序,每次程序启动时会创建数据库连接,后续读写数据库操作就一直复用这个连接。某一天,用户反馈下单后收不到通知了,我们登录服务器看到程序还在运行。经过排查确认,发生问题的这天,距离上一次有用户下单超过了 8 小时,MySQL 服务端已经自动断开连接了
MySQL查询性能优化七种武器之索引潜水
有读者可能会一脸懵逼?啥是索引潜水?你给起的名字的吗?有没有索引蛙泳?这个名字还真不是我起的,今天要讲的知识点就叫索引潜水(Index dive)。先要从一件怪事说起:我先造点数据复现一下问题,创建一张用户表:CREATE TABLE `user` ( `id` bigint(20)
我又和redis超时杠上了
经过上次redis超时排查一次redis超时排查经历,并联系云服务商解决之后,redis超时的现象好了一阵子,但是最近又有超时现象报出,但与上次不同的是,这次超时的现象发生在业务高峰期,在简单看过服务器的各项指标以后~
性能优化 · MySQL常见SQL错误用法
今天给大家分享几个SQL常见的“坏毛病”及优化技巧
后端思维之数据库性能优化方案
1、前言毫不夸张的说咱们后端工程师,无论在哪家公司,呆在哪个团队,做哪个系统,遇到的第一个让人头疼的问题绝对是数据库性能问题。如果我们有一套成熟的方法论,能让大家快速、准确的去选择出合适的优化方案,我相信能够快速准备解决咱么日常遇到的80%甚至90%的性能问题。从解决问题的角度出发,我们得先
where field in(...) 是怎么执行的?
我们日常写 SQL 时,子查询应该算是常客了。MySQL 为子查询执行准备了各种优化策略,接下来我会写子查询各种优化策略是怎么执行的系列文章。本文以包含最简单的 in 条件的查询入手,介绍 where field in (8,18,88,…) 这种值都是常量的 in 条件是怎么执行的。这虽然不是
长达 1.7 万字的 explain 关键字指南!
要让 SQL 又快又好的前提是,我们知道它「病」在哪里,而 explain 关键字就是 MySQL 提供给我们的一把武器!
分库分表经典15连问
前言大家好,我是田螺。我们去面试的时候,几乎都会被问到分库分表。田螺哥整理了分库分表的15道经典面试题,大家看完肯定会有帮助的。1.我们为什么需要分库分表在分库分表之前,就需要考虑为什么需要拆分。我们做一件事,肯定是有充分理由的。所以得想好分库分表的理由是什么。我们现在就从两个维度去思考它
原来count(*)是接口性能差的真凶
大家好,我是苏三,又跟大家见面了。前言最近我在公司优化过几个慢查询接口的性能,总结了一些心得体会拿出来跟大家一起分享一下,希望对你会有所帮助。我们使用的数据库是Mysql8,使用的存储引擎是Innodb。这次优化除了优化索引之外,更多的是在优化count(*)。通常情况下,分页接口一般会查询
【译】比较缓存数据库Redis与MongoDB的性能
这篇文章中,我们将比较两个最流行的NoSQL 数据库:Redis 和 MongoDB(Percona内存存储引擎),看看优劣,还有性能对比。
因为一条诡异的 insert 语句引起的Mysql问题分析及排查过程!
导语Mysql优化是各位工程师日常经常遇到的问题,本篇是一篇非常简单的mysql优化过程,着重介绍的是排查过程,优化方案一笔带过,非常适合初级开发者阅读! 正文问题背景有同事反馈在mysql上面执行一条普通的insert语句,结果报错,execute failed due to
SQL性能分析
监控有个全局监控的概念,通过全局监控能够知道目前集群或服务器的好坏情况,有了全局监控,再去考虑定点监控,对造成性能下降的具体原因进行分析,有可能是慢查询,也有可能是磁盘问题。全局监控分为两大类:指标信息和日志信息,指标信息指标信息是指普通服务器上面所监控到的一些硬件指标:cpu、内存、磁盘的i
SQL运行内幕:从执行原理看调优的本质
相信大家看过无数的MySQL调优经验贴了,会告诉你各种调优手段,如:避免 select *;join字段走索引;慎用in和not in,用exists取代in;避免在where子句中对字段进行函数操作;尽量避免更新聚集索引;group by如果不需要排序,手
count(*)查询性能很差?用这5招轻松优化
大家好,我是苏三,又跟大家见面了。前言最近我在公司优化过几个慢查询接口的性能,总结了一些心得体会拿出来跟大家一起分享一下,希望对你会有所帮助。我们使用的数据库是Mysql8,使用的存储引擎是Innodb。这次优化除了优化索引之外,更多的是在优化count(*)。通常情况下,分页接口一般会查询
关于MySQL中覆盖索引的性能问题
覆盖索引是提高 SQL 性能的优化之一。要了解覆盖索引,需要了解 MySQL 中索引的物理结构。📌 B+树InnoDB 索引是 B+Tree 数据结构,空间索引除外。(InnoDB 是 MySQL 中的通用存储引擎。)B+Tree是B-Tree的扩展;允许搜索、顺序访问、
数据库系列1:高并发下的数据字段变更
1 背景经常会遇到这种情况,我们的业务已经稳定地运行一段时间了,并且流量渐渐已经上去了。这时候,却因为某些原因(比如功能调整或者业务扩展),你需要对数据表进行调整,加字段 or 修改表结构。可能很多人说 alter table add column ... / alter table modif
MySQL查询性能优化七种武器之链路追踪
MySQL优化器可以生成Explain执行计划,我们可以通过执行计划查看是否使用了索引,使用了哪种索引?但是到底为什么会使用这个索引,我们却无从得知。好在MySQL提供了一个好用的工具 — optimizer trace(优化器追踪),可以帮助我们查看优化器生成执行计划的整个过程,以及做出的各种
百万数据excel导出功能如何实现?
我们要如何才能解决这些问题,实现一个百万级别的excel数据快速导出功能呢?
为什么SQL 绑定变量对性能很重要
动态 SQL 的一个常见问题是解析生产中的性能。许多开发人员无法访问生产环境,因此他们没有意识到这个问题究竟是什么问题?执行计划缓存现在大多数数据库供应商都提供了执行计划缓存(Oracle 将其称为游标缓存),其中存储了以前解析的 SQL 语句,并缓存了它们的执行计划以供重用。这是绑定变量如此重
mysql invalid conn排查
mysql invalid conn排查服务监控系列文章服务监控系列视频问题背景服务使用golang ,客户端库是go-mysql-driver ,系统测试环境频繁但是不总是报出invalid conn 错误,但实际拿sql执行时却是正常执行。排查思路原因分析客户端使用了无效连接由于
【译】对比多种MySQL高可用解决方案的优缺点
确保数据库高可用性的关键选项有哪些?它们对比后孰优孰劣?
【译】作为程序员应该知道的最基本SQL优化建议
当我们谈论系统性能优化时,除了代码级别的各种有针对性的优化外,还有一个非常重要的手段来优化数据库的性能。在互联网系统中,当系统访问越来越多,数据量越来越多时,数据库的压力将越来越大。如果数据库表结构设计不正确,SQL语句写得不好,代码性能可能极高,但系统会被数据库拖下来。因此,我们程序员有必要了
一次偶然机会发现的MySQL“负优化”
数年前遇到的一个关于MySQL查询性能的问题。主要是最近刷到了一些关于MySQL查询性能的文章,大部分文章中讲到的都只是一些常见的索引失效场合,于是我回想起了当初被那个离奇的“索引失效”支配的恐惧。
【全网首发】MySQL全面瓦解30:备份与恢复
1 为什么需要数据库备份灾难恢复:当发生数据灾难的时候,需要对损坏的数据进行恢复和还原需求的变更或者回滚:当需求发生变更,或者需要回滚到之前的版本时,数据库备份也显得很重要。审计:需要知道某一个阶段的数据或者Schema的实际情况测试:将实际的生产环境的数据导入到本地备份为测试数据,来验证
如何保证数据库和缓存双写一致性?
大家好,我是苏三,又跟大家见面了。前言数据库和缓存(比如:redis)双写数据一致性问题,是一个跟开发语言无关的公共问题。尤其在高并发的场景下,这个问题变得更加严重。我很负责的告诉大家,该问题无论在面试,还是工作中遇到的概率非常大,所以非常有必要跟大家一起探讨一下。今天这篇文章我会从浅入深
【译】MySQL rewriteBatchedStatements 的属性设置
介绍在本文中,我们将了解 MySQL rewriteBatchedStatements 在使用 JDBC、JPA 或 Hibernate 时是如何工作的。
一文读懂数据库基础
1 范式化设计1.1 第一范式(1NF)无重复的列定义所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为
解决缓存和数据库双写数据一致性问题
缓存的作用在公司刚起步,业务量比较小的时候。对于系统的读写请求,我们一般的做法都是直接操作数据库。但是随着业务体量的不断增长,用户请求增多,这时候只用数据库处理业务是不够的,存在着「性能问题」。业内通用做法就是引入「缓存」。缓存可以提升性能,缓解数据库压力,但是使用缓存也会出现「缓存和数据库
SpringBoot+MyBatisPlus实现读写分离
前言随着业务量的不断增长,数据库的读写压力也越来越大。为了解决这个问题,我们可以采用读写分离的方案来分担数据库的读写负载。本文将介绍如何使用 Spring Boot + MyBatis Plus + MySQL 实现读写分离。读写分离原理读写分离是指将数据库的读操作和写操作分别放到不同的数据库
搭建Mysql主从复制
MySQL主从复制是一种常用的数据库高可用性解决方案,可以提高数据库的可用性和性能。本教程将介绍如何搭建MySQL主从复制。1、MySQL 支持的复制类型基于语句的复制(STATEMENT):在主服务器上执行的 SQL 语句,在从服务器上执行同样的语句。MySQL 默认采用基于语句的复制,效率

有开始,就会有进​步!

在追求性能的道路上,记录每一刻的成长!源码解读,编程技巧,外文翻译,技术实践,线上案例等等,记录自己,启发他人!

专家作者推荐

巡山小汪

关注微信公众号《解Bug之路》,有问题请在公众号中咨询:) 无论多么艰苦的时刻,都不要忘记,辉煌的未来,在你的眼中闪耀!

飞哥开发内功

《深入理解Linux网络》作者,腾讯搜狗十年工程师,公众号「开发内功修炼」作者!

踩刀诗人

聊聊技术,唠唠段子,偶尔做菜写诗,欢迎关注我的公众号 踩刀诗人

Brand

搜索关注微信公众号【架构与思维】:撰稿者为bat、字节的几位高阶研发/架构,专注技术分享。

专题推荐

分布式系统绕不开的核心之一的就是数据缓存,有了缓存的支撑,系统的整体吞吐量会有很大的提升。通过使用缓存,我们把频繁查询的数据由磁盘调度到缓存中,保证数据的高效率读写。
21篇文章38605阅读量
对于刚刚接触 JVM 的同学来说,JVM 就像一个黑盒一样,完全不知道这是一个什么东西。所以对于小白来说,最重要是搞清楚 JVM 到底是干嘛的,以及其常用的知识框架。针对这样的需求,才有了这个专题,从零开始循序渐进地介绍了 JVM,相信是很不错的 JVM 入门教程。
15篇文章36135阅读量