• 高并发环境下,先操作数据库还是先操作缓存?

    前言在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。 缓存维护方案一假设有一写(线程A)一读(线程B)操作,先操作缓存,在操作数据库,如下流程图所示:1)线程A发起一个写操作,第一步del cache2)线程A第二步写入新数据到DB3)线程B发起一个读操作,cache mi...

    MySQL 2020年03月30日 1389 0
  • Mysql数据库表引擎与字符集

    Mysql数据库表引擎与字符集1.服务器处理客户端请求其实不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(MySQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果)。那服务器进程对客户端进程发送的请求做了什么处理,才能产生最后的处理结果呢?客户端可以向服务器发送增删改查各类请求,我们这里以比较复杂的查询请求...

    MySQL 2020年03月27日 1787 0
  • 数据库分库分表最佳实践及说明

    数据库瓶颈不管是IO瓶颈还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载的活跃连接数的阈值。在业务service来看, 就是可用数据库连接少甚至无连接可用,接下来就可以想象了(并发量、吞吐量、崩溃)。IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询会产生大量的IO,降低查询速度->分库和垂直分表第二种:网络IO瓶颈,...

    MySQL 2020年03月27日 2152 0
  • Mysql索引扫盲总结

    什么是索引?索引为什么查询快,索引的数据结构是什么?聚簇索引/非聚簇索引区别?什么是覆盖索引?唯一索引/普通索引?单列索引/联合索引区别?Full-index全文索引?什么是下推索引?什么是最左匹配,查询回表?哪些字段适合建索引?为什么一般主键索引最好是自增长的, 尽量短的数值类型?为什么有些SQL不走索引?索引的最佳实践?索引为什么快索引的本质是空间换时间。+bonus: 加...

    MySQL 2020年03月25日 1205 0
  • 日期时间,在SQL中到底是字符串还是数字?

    经常写SQL脚本的朋友,对数据库中的日期时间类型肯定不会陌生,这是一种非常有意思的数据类型,她既像是字符串类型、又像是数字类型。我们可以像字符串那样组合日期、又可以像数字那样进行各种加减运算。日期时间太常用了,我们一定好认真的掌握她。MySQL、PostgreSQL、SQL Server等各种数据库系统都提供了丰富的日期时间类型和大量的日期时间处理函数。其实日期时间类型的本质,...

    MySQL 2020年03月25日 2247 0
  • oracle与mysql数据转换及数据类型对应关系

    MySQL与Oracle两种数据库在工作中,都是用的比较多的数据库,由于MySQL与Oracle在数据类型上有部分差异,在我们迁移数据库时,会遇上一定的麻烦,下面介绍MySQL与Oracle数据库数据类型的对应关系。一、常见数据类型在MySQL与Oracle数据库中的表现形式 说明 mysql ...

    MySQL 2020年03月24日 2216 0
  • 适合中小型公司的Mysql数据库使用规范

    这个是公司技术基础建设的一部分,在以后我会逐步推出更多的技术相关文章,感觉有用的请关注。这个文章是为了规范公司的数据库使用的,如果公司有原来使用的规范可以做下对比。这个规范适合中小型公司,数据量不是特别大的。设计的单表容量在千万级。数据库使用 MYSQL ,版本 5.7+数据库使用主要属性类型,数字用 int ,字符用 char ,比较多的字符用 text 或者 verchar...

    MySQL 2020年03月19日 1916 0
  • 这句简单的sql,如何加索引?颠覆了我多年的认知

    不啰嗦,直接入正题。问题是这样的。请问下面的sql语句,要想加快查询速度,该怎么创建索引?以下,以mysql数据库为准。select * from test where a=? and b>? order by c limit 0,100结果可能会出乎你的意料。我们首先准备一下运行环境,然后按照最左前缀原则和explain关键字来进行验证。结果真是颠覆了xjjdog多年的...

    MySQL 2020年03月17日 1369 0
  • 1.3万亿条数据查询如何做到毫秒级响应?

    知乎,在古文中意为“你知道吗?”,它是中国的Quora:一个问答网站,其中各种问题由用户社区创建,回答,编辑和组织。作为中国最大的知识共享平台,知乎平台目前拥有2.2亿注册用户,3000万个问题,网站答案超过1.3亿。随着用户群的增长,应用程序的数据大小无法评估,在一个名为Moneta的应用程序中存储了大约1.3万亿行数据(存储着用户已经阅读过的帖子)。由于每月累计产生大约10...

    MySQL 2020年03月14日 1291 0
  • 高并发环境下如何让Redis和Mysql保持数据统一

    业务场景在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MyS...

    MySQL 2020年03月14日 1423 0
  • 一次SQL查询优化原理分析,900W+数据,从17s到300ms

    有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 ms, fetching: 184 ms); 操作:查询条件放到子查询中,子查询只查主...

    MySQL 2020年03月12日 2092 0
  • 阿里架构师教你处理高并发:2种方法,解决Redis和Mysql一致性

    需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MyS...

    MySQL 2020年03月03日 2236 0
  • MySql,Mssql,Oracle三种数据库性能优缺点

    1.什么是数据库? 简单的说,数据库(英文Database)就是一个存放数据的仓库,这个仓库是按照一定的数据结果(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的、我们可以通过数据库提供的多种方法来管理数据库里的数据更简单的形象理解,数据库和我们生活中存放杂物的仓库性质一样,区别只是存放的东西不同。2.MySql,Mssql,Oracle三种数据库性能优缺点:①MyS...

    MySQL 2020年01月11日 2750 0
  • MySQL8.0.18加强EXPLAIN,定位sql性能更直观

    在mysql8.0.18版本之前,查看一个sql语句的执行计划,基本职能看到,sql是否走索引,使用哪个索引,是否是全部扫描,是否用到文件排序等等,如下所示mysql> explain select a.name,a.depno,b.name from t_test1 a inner join t_test2 b on a.depno=b.depno;+----+----...

    MySQL 2020年01月07日 1470 0
  • 深入理解MySql的索引

    为什么索引能提高查询速度先从 MySQL 的基本存储结构说起MySQL的基本存储结构是页 (记录都存在页里边) :各个数据页可以组成一个双向链表每个数据页中的记录又可以组成一个单向链表- 每个数据页都会为存储在它里边儿的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可快速找到指定的记录所以说,如果我们...

    MySQL 2020年01月06日 1346 0
  • Mysql8重大性能提升,支持hash Join

    MySQL8.18版本开始,优化引擎已经开始支持hash join,这个功能添加,可以说是mysql粉丝的重大利好消息。在没有hash join之前,只能使用nested loop,这种模式非常消耗cpu资源,而且当sql语句缺乏索引时,性能简直不能忍受,而hash join就能解决nested loop的痛点。下面来看看nested loop和hash join的应用场景和对...

    MySQL 2020年01月05日 1637 0
  • MySQL数据库

    MySQL官方地址: http://www.mysql.com/ MySQL官方下载地址: http://www.mysql.com/downloads/ MySQL 简介点击查看MySQL官方网站MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于Oracle旗下产品。特点使用C和...

    MySQL 2020年01月02日 1504 0
  • 深入理解SQL原理:一条SQL查询语句是如何执行的?

    本篇文章将通过一条 SQL 的执行过程来介绍 MySQL 的基础架构。首先有一个 user_info 表,表里有一个 id 字段,执行下面这条查询语句:select * from user_info where id = 1;返回结果为:+----+----------+----------+--------+------+---------------------+-----...

    MySQL 2019年12月29日 1444 0
  • 常用的SQL语句优化技巧

    说到系统性能优化涉及的内容就比较多了,从业务需求到系统架构设计再到实现过程中的中间件、存储层等等的设计,这些都是需要充分规划的。涉及存储层,从数据库选型,数据库设计,索引规划、查询方式,任一环节都可能引入性能风险。本文主要从数据库SQL查询优化的角度优化查询性能,数据库选型是MySQL。SQL查询优化应尽量避免在 WHERE 子句中使用 != 或 <> 操作符,否则...

    MySQL 2019年12月29日 1430 0
  • 你有一份经典SQL语句大全,请注意查收

    一、基础部分1、创建数据库CREATE DATABASE dbname2、删除数据库DROP DATABASE dbname3、创建新表CREATE TABLE tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表: 使用旧表创建新表create table tab_new...

    MySQL 2019年12月28日 1324 0
  • Web端 SQL审核平台——Yearning Mysql

    介绍Yearning MYSQL 是一个SQL语句审核平台。提供查询审计,SQL审核等多种功能,支持Mysql,可以在一定程度上解决运维与开发之间的那一环,功能丰富,代码开源,安装部署容易!开源地址https://gitee.com/cookieYe/Yearning功能介绍SQL查询查询导出查询自动补全SQL审核流程化工单SQL语句检测SQL语句执行SQL回滚历史审核记录查询...

    MySQL 2019年12月23日 3340 0
  • 如何写一手好SQL很有必要

    前言博主负责的项目主要采用阿里云数据库MySQL,最近频繁出现慢SQL告警,执行时间最长的竟然高达5分钟。导出日志后分析,主要原因竟然是没有命中索引和没有分页处理 。其实这是非常低级的错误,我不禁后背一凉,团队成员的技术水平亟待提高啊。改造这些SQL的过程中,总结了一些经验分享给大家,如果有错误欢迎批评指正。MySQL性能最大数据量抛开数据量和并发数,谈性能都是耍流氓 。MyS...

    MySQL 2019年12月16日 1529 0
  • 除了会排序,你对ORDER BY的用法可能一无所知

    导读为什么只有ORDER BY后面可以使用列别名为什么不推荐使用ORDER BY后接数字来排序为什么视图和子查询里面不能使用ORDER BY ……​小伙伴们在进行SQL排序时,都能很自然的使用到ORDER BY。不管是默认ASC的升序,还是DESC降序,几乎都是信手拈来。今天给大家分享一些你可能不知道的ORDER BY用法。一、ORDER BY返回的是游标而不是集合SQL的理论...

    MySQL 2019年12月12日 1457 0
  • MySQL用得好好的,为什么要转ES?

    来源:京东技术(jingdongjishu)京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况。我们把订单数据存储在MySQL中,但显然只通过DB来支撑大量的查询是不可取的。同时对于一些复杂的查询,MySQL支持得不够友好,所以订单中心系统使用了Elasticsearch来承载订单查询的主要压力...

    MySQL 2019年11月01日 1759 0
  • 别逗了,你真以为分库分表就能无限扩容吗?

    像我这样的菜鸟,总会有各种疑问,刚开始是对 JDK API 的疑问,对 NIO 的疑问,对 JVM 的疑问... 图片来自 Pexels 当工作几年后,对服务的可用性,可扩展性也有了新的疑问,什么疑问呢?其实是老生常谈的话题:服务的扩容问题。 正常情况下的服务演化之路 让我们从最初开始。 单体应用 每个创业公司基本都是从类似 SSM 和 SSH 这种架构起来的,没什么好...

    MySQL 2019年10月28日 1493 0
  • 2019,遇见最好的 MySQL 数据库

    2019年,关于 MySQL 的新特性、新版本消息不绝于耳: 2019,10月,MySQL 8.0.18 发布,支持 HASH JOIN;2019,4月,MySQL 8.0.11 发布,实现比 MySQL 5.7 快 2 倍的速度; MySQL 一直是互联网数据内核的主宰,但是在经历从互联网到企业级的转变中,却是困难重重。然而在 2019年,越来越多的企业级客户开始在业务核心...

    MySQL 2019年10月26日 3221 0
  • 程序员冷知识,Mysql的数据库引擎为什么多选InnoDB?

    这是一道经典的程序员面试题,Mysql数据库在超大并发下,特别是Insert语句比较多的情况下,应该选择哪种存储引擎,很多人会说MyISAM,今天我们来简单介绍下Mysql的MyISAM存储引擎。锁粒度首先我们来了解 一些MyISAM与InnoDB的一些区别,首先是锁粒度,MyISAM只有表锁而InnoDB拥有行锁。也就是说,Mysql的InnoDB的锁粒度更小,锁粒度小,有时...

    MySQL 2019年10月21日 2085 0
  • MySQL 8.0.18 GA 正式发布

    MySQL Server 8.0.18、5.7.28 和 5.6.46 已于2019年10月15日正式发布。MySQL 开发团队也第一时间发布了更新说明文章。以下是原文翻译。 原文:《The MySQL 8.0.18 Maintenance Release is Generally Available》 https://mysqlservertea...

    MySQL 2019年10月17日 1576 0
  • mysql where 字段值末尾加空格也能查到数据

    今天遇到了一个很奇怪的mysql查询问题,当作为查询条件的字符串末尾有空格时,可以查到数据库中末尾不含空格的值。经过多次查阅资料,最后找到三种解决的方法,现在分享给大家。原因:如果字段是char或varchar类型,那么在字符串比较的时候MySQL使用PADSPACE校对规则,会忽略字段末尾的空格字符。解决方式:若想做到精确匹配可以使用下面几种方法:第一种方法:使用likese...

    MySQL 2019年10月16日 3048 0
  • 怎么快速插入 100W条数据,用时最短

    多线程插入(单表) 问:为何对同一个表的插入多线程会比单线程快?同一时间对一个表的写操作不应该是独占的吗? 答:在数据里做插入操作的时候,整体时间的分配是这样的: 链接耗时 (30%) 发送query到服务器 (20%) 解析query (20%) 插入操作 (10% * 词条数目) 插入index (10% * Index的数目) 关闭链...

    MySQL 2019年10月11日 3037 0