收藏:一些比较好的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)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为
解决缓存和数据库双写数据一致性问题
缓存的作用在公司刚起步,业务量比较小的时候。对于系统的读写请求,我们一般的做法都是直接操作数据库。但是随着业务体量的不断增长,用户请求增多,这时候只用数据库处理业务是不够的,存在着「性能问题」。业内通用做法就是引入「缓存」。缓存可以提升性能,缓解数据库压力,但是使用缓存也会出现「缓存和数据库

有开始,就会有进​步!

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

专家作者推荐

巡山小汪

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

飞哥开发内功

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

踩刀诗人

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

Brand

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

专题推荐

分布式系统绕不开的核心之一的就是数据缓存,有了缓存的支撑,系统的整体吞吐量会有很大的提升。通过使用缓存,我们把频繁查询的数据由磁盘调度到缓存中,保证数据的高效率读写。
21篇文章38544阅读量
Netty 是一个异步事件驱动的网络通信层框架,用于快速开发高可用高性能的服务端网络框架与客户端程序,它极大地简化了 TCP 和 UDP 套接字服务器等网络编程。
作者:闪电侠,《跟闪电侠学 Netty》已出版了。书的前半部分是掘金小册中的内容:通过一个完整的 IM 项目入门 Netty;后半部分用了较大的篇幅来介绍 Netty 的底层原理,也会穿插讲一些源码阅读的思路,希望能够帮助到你。
13篇文章21865阅读量