- 博客(9)
- 资源 (2)
- 收藏
- 关注
原创 Mysql中的join、cross join、inner join是等效的,某些场景下left join被转成inner join可以有更好的性能提升
今天在Mysql官网(参考博客1)看到一段话:At the parser stage, queries with right outer join operations are converted to equivalent queries containing only left join operations. In the general case, the conversion is ...
2019-08-31 11:03:41 3793 2
原创 以kafka为代表的拉模式和以RabbitMQ为代表推模式的消息中间件的核心区别
to be continue。。。kafka是通过一个提交日志记录的方式来存储消息记录,采用拉模式,而RabbitMQ则采用队列的方式,属于推模式。由于kafka是通过提交日志记录的方式,消息的状态在消费端维护,因而当需要多订阅时,完全没必要建立多个partition,所有消费端对应同一个partition。但当kafka需要实现负载均衡时,就需要在一个topic下建立多个partitio...
2019-08-30 09:17:40 3144
转载 为什么MySQL的索引要使用B+树,而不是其它树?比如B树?
InnoDB的一棵B+树可以存放多少行数据?答案:约2千万为什么是这么多?因为这是可以算出来的,要搞清楚这个问题,先从InnoDB索引数据结构、数据组织方式说起。计算机在存储数据的时候,有最小存储单元,这就好比现金的流通最小单位是一毛。在计算机中,磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)的最小单元是块,一个块的大小是4k,而对于...
2019-08-28 10:38:19 2898 2
转载 MySQL常用优化手段
一、EXPLAIN做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据 type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别 key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式 key_len列,索引长度 row...
2019-08-28 10:35:05 258
原创 一致性哈希和哈希槽使用场景对比
一致性哈希和哈希槽是分布式缓存集群系统常用的两种算法,本文不会再介绍这两种算法,感兴趣的可以阅读参考博文。本文想在此基础上分析下两种算法使用场景的差异。 在参考博文4中给了一个示例:上图为一致性hash算法中的四个节点A、B、C、D,现在假设B失效了: 文中提到:如果B失效了,那么如果有持久化存储的,需要做数据恢复,将B的数据迁移至C即...
2019-08-24 20:32:26 2888
原创 Linux学习——常用命令是哪些单词的缩写
一、系统管理相关1、文件管理1.ls list的简写2.cd change directory3.pwd print working directory4.cp copy5.mv move6.rm remove7.pushd push to directory8.popd pop from directory9.mkdir make directory1...
2019-08-18 20:49:08 474
原创 Linux学习之——Linux系统目录结构
树状目录结构:目录解释:1./binbin是Binary的缩写,这个目录存放着最经常使用的命令。2./boot这里存放着启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。3./devdev是Device的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。4./etc et cetera的简写...
2019-08-18 19:13:50 257
原创 MySQL中Explain的Extra字段值Using index和Using where;Using index和Using where以及Using index condition的区别
在用explain对select语句进行执行计划分析时,我们常常会其中的Extra字段中出现Using index或Using index;Using where或Using where或Using index condition,那么这四者有什么区别呢?哪个检索的性能更好呢? 其实顾名思义,Extra是补充说明的意思,也就是说,Extra中的值补充说明了MySQ...
2019-08-17 17:48:09 5208 1
原创 case when实现数据库批量更新
在数据表操作中,批量更新数据行记录中的部分字段是很常见的操作。以下示例为在Mybatis框架下使用case when语句实现数据行记录批量更新。 以下示例为批量更一个订单中多个商品的数量和颜色。商品对应的Java类:public class Sku { private Long id; private String orderNo; ...
2019-08-17 16:18:28 1790 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人