
mysql
文章平均质量分 87
xy29981
学习进阶技术,成就高薪
展开
-
招银一面:如何保障 MySQL 和 Redis 的数据一致性?
如何保障 MySQL 和 Redis 的数据一致性?这个问题很早之前我就遇到过,但是一直没有仔细去研究,上个月看了极客的课程,有一篇文章专门有过讲解,刚好有粉丝也问我这个问题,所以感觉有必要单独出一篇。之前也看了很多相关的文章,但是感觉讲的都不好,很多文章都会去讲各种策略,比如(旁路缓存)策略、(读穿 / 写穿)策略和(写回)策略等,感觉意义真的不大,然后有的文章也只讲了部分情况,也没有告诉最优解。我直接先抛一下结论:在满足实时性的条件下,不存在两者完全保存一致的方案,只有最终一致性方案。根据网上.原创 2022-05-18 13:25:41 · 5733 阅读 · 0 评论 -
面试官:1亿条数据批量插入 MySQL,哪种方式最快?
这几天研究mysql优化中查询效率时,发现测试的数据太少(10万级别),利用 EXPLAIN 比较不同的 SQL 语句,不能够得到比较有效的测评数据,大多模棱两可,不敢通过这些数据下定论。所以通过随机生成人的姓名、年龄、性别、电话、email、地址 ,向mysql数据库大量插入数据,便于用大量的数据测试 SQL 语句优化效率。、在生成过程中发现使用不同的方法,效率天差万别。1、先上Mysql数据库,随机生成的人员数据图。分别是ID、姓名、性别、年龄、Email、电话、住址。下图一共三千三百万..原创 2022-05-18 09:17:44 · 671 阅读 · 1 评论 -
阿里一面: 每秒 570000 的写入,如何实现?
一、需求一个朋友接到一个需求,从大数据平台收到一个数据写入在20亿+,需要快速地加载到MySQL中,供第二天业务展示使用。二、实现再分析对于单表20亿, 在MySQL运维,说真的这块目前涉及得比较少,也基本没什么经验,但对于InnoDB单表Insert 如果内存大于数据情况下,可以维持在10万-15万行写入。但很多时间我们接受的项目还是数据超过内存的。这里使用XeLabs TokuDB做一个测试。三、XeLabs TokuDB 介绍项目地址:https://github.com/原创 2022-05-18 08:52:23 · 139 阅读 · 0 评论 -
面试官:为什么数据库连接池不采用 IO 多路复用?我懵逼了。。
今天我们聊一个不常见的 Java 面试题:为什么数据库连接池不采用 IO 多路复用?这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用 DB 时,还是经常性采用c3p0,tomcat connection pool等技术来与 DB 连接,哪怕整个程序已经变成以Netty为核心。这到底是为什么?首先纠正一个常见的误解。IO多路复用听上去好像是多个数据可以共享一个IO(socket连接),实际上并非如此。「IO多路复用不是指多个服务共享一个连接,而仅仅是指多个连接的管理可以原创 2022-05-17 11:23:02 · 144 阅读 · 0 评论 -
面试官:怎么操作MyBatis批量插入几千条数据
近日,项目中有一个耗时较长的Job存在CPU占用过高的问题,经排查发现,主要时间消耗在往MyBatis中批量插入数据。mapper configuration是用foreach循环做的,差不多是这样。(由于项目保密,以下代码均为自己手写的demo代码)<insert id="batchInsert" parameterType="java.util.List"> insert into USER (id, name) values <foreach collection=原创 2022-05-16 15:06:21 · 2437 阅读 · 1 评论 -
面试官:为什么不建议在 MySQL 中使用 UTF-8?
记得去年我在往MySQL存入emoji表情😲😳时,一直出错,无法导入。后来找到办法 -- 通过把 utf8 改成 utf8mb4 就可以了,并没有深究。一年后,我看到一篇文章讲到emoji文字占4个字节,通常要用utf-8去接收才行,其他编码可能会出错。我突然想到去年操作MySQL把utf8改成utf8mb4的事儿。嗯?他本身不就是utf8编码么!那我当时还改个锤子?难道,MySQL的utf8不是真正的UTF-8编码吗??! 卧槽这。。MySQL有bug!带着疑问查询了很多相原创 2022-05-16 09:22:38 · 120 阅读 · 0 评论 -
面试官:单表6亿数据怎么做性能测试
最近由于项目需求使用到了 clickhouse 做分析数据库,于是用测试环境做了一个单表 6 亿数据量的性能测试,记录一下测试结果,有做超大数据量分析技术选型需求的朋友可以参考下。服务器信息 CPU:Intel Xeon Gold 6240 @ 8x 2.594GHz 内存:32G 系统:CentOS 7.6 Linux内核版本:3.10.0 磁盘类型:机械硬盘 文件系统:ext4 Clickhou原创 2022-05-16 09:19:40 · 710 阅读 · 0 评论 -
阿里一面:SQL 优化有哪些技巧?
MySQL 相信大家一定都不陌生,但是不陌生不一定会用!会用不一定能用好!今天就带大家复习一个高频面试考点,SQL 优化有哪些技巧?当然这个还是非常有实用价值的,工作中你也一定用的上。如果应用得当,升职加薪,指日可待1、创建索引一定要记得创建索引,创建索引,创建索引重要的事说三遍!执行没有索引的 SQL 语句,肯定要走全表扫描,慢是肯定的。这种查询毫无疑问是一个慢 SQL 查询。那么问题来了,是不是要收集所有的 where 查询条件,然后针对所有的组合都创建索引呢?原创 2022-05-13 09:33:46 · 168 阅读 · 0 评论 -
面试官问:1000w数据,速度提升 60 倍的 SQL 优化方案,太顶了
有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 ms, fetching: 184 ms);操作:查询条件放到子查询中,子查询只查主键ID,然后使用子查询中确定的主键关联查询其他的属性字段;原理:1、减少回表操作;2、可参考《阿里巴巴Java开发原创 2022-05-11 08:57:04 · 1100 阅读 · 0 评论 -
一线大厂二面:CAP原则为什么只能满足其中两项?而不能同时满足
目录前言 CAP针对对象 CAP的定义 可用性和容错性的区别 CAP定理 取舍 权衡 总结前言我们学习分布式系统,就一定听说过CAP定理,尤其在学习分布式事务时,都是以这个定理作为开场。这个定理起源于柏克莱加州大学的计算机科学家埃里克·布鲁尔在2000年的分布式计算原则研讨会上提出的一个猜想。 在2002年,麻省理工学院的赛斯·吉尔伯特和南希·林奇发表了布鲁尔猜想的证明,使之成为一个定理。定理讨论了在两个互相矛盾的请求到达彼此连接不通的两个不同的分布式节点的时候的处理方案原创 2022-05-06 16:02:44 · 343 阅读 · 0 评论 -
阿里二面:为什么MySQL选择Repeatable Read作为默认隔离级别?
我们知道, ANSI/ISO SQL定义的标准隔离级别有四种,从高到底依次为:可序列化(Serializable)、可重复读(Repeatable Reads)、提交读(Read Committed)、未提交读(Read Uncommitted)。RU隔离级别下,可能发生脏读、幻读、不可重复读等问题。RC隔离级别下,解决了脏读的问题,存在幻读、不可重复读的问题。RR隔离级别下,解决了脏读、不可重复读的问题,存在幻读的问题。Serializable隔离级别下,解决了脏读、幻读、不可重复读的问题。原创 2022-05-05 23:48:42 · 685 阅读 · 1 评论