0

MySQL用得好好的,为什么要转ES?

来源:京东技术(jingdongjishu)京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况。我们把订单数据存储在MySQL中,但显然只通过DB来支撑大量的查询是不可取的。同时对于一些复杂的查询,MySQL支持得不够友好,所以订单中心系统使用了Elasticsearch来承载订单查询的主要压力。Elasticsearch作为一款功能强大的分布式搜索引擎,支持近实时的存储、搜索数据,在京东到家订单系统中发挥着巨大作用,目前订单中心ES集群存储数据量达到10亿个文档,日均查询量达到5亿。随着京东到家近几年业务的快...

阅读全文>>

0

别逗了,你真以为分库分表就能无限扩容吗?

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

阅读全文>>

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 数据库,这是一个标志性的转变,代表 MySQL 打开了更广泛的企业市场,而MySQL的技术变革也正在以更快的步伐去满足更广泛的用户需求。 毫无疑问,MySQL 是当今...

阅读全文>>

0

程序员冷知识,Mysql的数据库引擎为什么多选InnoDB?

这是一道经典的程序员面试题,Mysql数据库在超大并发下,特别是Insert语句比较多的情况下,应该选择哪种存储引擎,很多人会说MyISAM,今天我们来简单介绍下Mysql的MyISAM存储引擎。 锁粒度 首先我们来了解 一些MyISAM与InnoDB的一些区别,首先是锁粒度,MyISAM只有表锁而InnoDB拥有行锁。也就是说,Mysql的InnoDB的锁粒度更小,锁粒度小,有时候是好事有时候也是坏事,假如我们只是修改几行的数据,那么锁粒度小显然会更优,如果涉及的行数比较多的时候,行锁会造成更大的内存消耗,速度也会更慢一些。 程序员冷知识,Mysql的数据库引擎为什么多选Inn...

阅读全文>>

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://mysqlserverteam.com/the-mysql-8-0-18-maintenance-release-is-generally-available/ 作者:Geir Hoydalsvik ...

阅读全文>>

0

mysql where 字段值末尾加空格也能查到数据

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

阅读全文>>

0

怎么快速插入 100W条数据,用时最短

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

阅读全文>>

0

MySQL5.7占用CPU过高的问题分析

升级mysql数据库到5.7版本后,发现MySQL对CPU和内存的消耗增加了不少,内存增加量还好一些,但CPU的飙升就麻烦一些了,这样会占用不少的资源。 其实可以使用MySQL内部的表定位问题SQL,通过下面这个SQL来定位问题: select a.THREAD_OS_ID,b.user,b.host,b.db,b.command,b.time,b.state,b.info from performance_schema.threads a,information_schema.processlist b where b.id = a.processlist_id; ...

阅读全文>>

0

MySQL入门-如何使用mysqldump导出和数据导入

一、备份单个数据库 1、备份命令:mysqldump   MySQL数据库自带的一个很好用的备份命令。是逻辑备份,导出 的是SQL语句。也就是把数据从MySQL库中以逻辑的SQL语句的形式直接输出或生成备份的文件的过程。 单实例语法(Syntax): mysqldump -u <username> -p <dbname> > /path/to/***.sql 多实例的备份语法(Syntax): mysqldump -u <username> -p <dbname> -S &l...

阅读全文>>

0

MySQl数据库如何备份以及备份命令方法介绍

一、备份的目的 做灾难恢复:对损坏的数据进行恢复和还原 需求改变:因需求改变而需要把数据还原到改变以前 测试:测试新功能是否可用 二、备份需要考虑的问题 可以容忍丢失多长时间的数据; 恢复数据要在多长时间内完; 恢复的时候是否需要持续提供服务; 恢复的对象,是整个库,多个表,还是单个库,单个表。 三、备份的类型 1、根据是否需要数据库离线 冷备(cold backup):需要关mysql服务,读写请求均不允许状态下进行; 温备(warm backup): 服务在线,但仅支持读请求,不允许写请求;...

阅读全文>>