数据库
文章平均质量分 94
RunningShare
这个作者很懒,什么都没留下…
展开
-
LSM、B 树、B+树、B*对比
参考B树、B+树、LSM树以及其典型应用场景B树和B+树的插入、删除图文详解BTree vs LSM0. 前言动态查找树主要有:二叉查找树、平衡二叉树、红黑树、B树、B+树。前面三种是典型的二叉查找树,查找的时间复杂度是O(log2N)。涉及到磁盘的读写(比如每个节点都需要从磁盘获取),读写的速度就与树的深度有关系,那么降低树的深度也就可以提升查找效率。这时就提出了平衡多路查找树,也就是B树以及B+树。B树和B+树非常典型的场景就是用于关系型数据库的索引(MySQL)1. B类树1.转载 2021-09-02 17:55:43 · 427 阅读 · 0 评论 -
彻底搞清分库分表(垂直分库,垂直分表,水平分库,水平分表)
分库分表是什么下边以电商系统中的例子来说明,下图是电商系统卖家模块的表结构:通过以下SQL能够获取到商品相关的店铺信息、地理区域信息:SELECT p.*,r.[地理区域名称],s.[店铺名称],s.[信誉]FROM [商品信息] p LEFT JOIN [地理区域] r ON p.[产地] = r.[地理区域编码]LEFT JOIN [店铺信息] s ON p.id = s.[所属店铺]WHERE p.id = ?随着公司业务快速发展,数据库中的数据量猛增,访问性能也变慢了,优化转载 2021-02-02 22:11:17 · 389 阅读 · 0 评论 -
MYSQL---Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column
--数据库中插入数据或执行sql语句时一直报下面这个错误:Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on c...转载 2020-01-19 11:07:05 · 1094 阅读 · 0 评论 -
数据库Sharding的基本思想和切分策略
本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示一、基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这...转载 2019-11-29 09:47:50 · 177 阅读 · 0 评论 -
MySQL 添加索引,删除索引及其用法
.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。 在数据量和访问量不大的情况下,mysql访问是非常快的,是否加索引对访问影响不大。但是当数据量和访问量剧增的时候,就会发现mysql变慢,甚至down掉,这就必须要考虑优化sq...转载 2019-05-30 21:33:16 · 1102 阅读 · 0 评论 -
Phoenix中Sequence的用法(id自增)
Phoenix中Sequence的用法Phoenix--HBase的JDBC驱动序列(Sequence)是Phoenix提供的允许产生单调递增数字的一个SQL特性,序列会自动生成顺序递增的序列号,以实现自动提供唯一的主键值。使用CREATE SEQUENCE语句建立序列的语法如下:create sequence <deq_name>[start with n]...转载 2019-06-13 20:10:49 · 1522 阅读 · 0 评论 -
ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql
ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql。 在实际应用中,经常碰到导入数据的功能,当导入的数据不存在时则进行添加,有修改时则进行更新,在刚碰到的时候,第一反应是将其实现分为两块,分别是判断增加,判断更新,后来发现在mysql中有ON DUPLICATE KEY UPDATE一步就可以完成,感觉实在是太方便了, 该语...转载 2019-06-18 20:41:05 · 429 阅读 · 0 评论