背景 mysql分页查询是我们常见的需求,但是随着页数的增加查询性能会逐渐下降,尤其是到深度分页的情况。我们可以把分页分为两个步骤: 定位偏移量 获取分页条数的数据 所以当数据较大页数较深时就涉及一次需要耗费较长时间的操作。所以mysql深度分页的问题该如何解决呢? 首先我们来看一个简单的查询: SELECT * FROM events WHERE date > '2010-01-01T00:00:00-00:00' AND event = 'editstart' OR…
背景 mysql分页查询是我们常见的需求,但是随着页数的增加查询性能会逐渐下降,尤其是到深度分页的情况。我们可以把分页分为两个步骤: 定位偏移量 获取分页条数的数据 所以当数据较大页数较深时就涉及一次需要耗费较长时间的操作。所以mysql深度分页的问题该如何解决呢? 首先我们来看一个简单的查询: SELECT * FROM events WHERE date > '2010-01-01T00:00:00-00:00' AND event = 'editstart' OR…
数据库事务的隔离级别有4种,由低到高分别是:Read uncommitted、Read committed、Repeatable read、Serializable。事物的并发操作中可能出现脏读,不可重复读,幻读。 数据库事务隔离级别: 未授权读取级别(读未提交): 也称为读未提交(Read Uncommitted)。 以操作同一行数据为前提,读事务允许其他读事务和写事务,未提交的写事务禁止其他写事务(但允许其他读事务)。 此隔离级别可以防止更新丢失,但不能防止脏读、不可重复读、幻读。 此隔离级别可以通过“排他写锁…
Redis主从同步 数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布 记录。同步对读取操作的可扩展性和数据冗余很有帮助。 工作原理: Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。 全量同步 Redis全量复制一般发生在Slave初始化…
有一个奇怪的问题,假如MySQL 的自增 ID 用完了,怎么办? 这个知识点比较冷门,不过可以自己手动实践下。 首先,创建一个最简单的表,只包含一个自增id,并插入一条数据。 create table t0(id int unsigned auto_increment primary key) ; insert into t0 values(null); 通过show命令show create table t0;查看表情况 CREATE TABLE t0 ( id int(10) unsigned NOT NULL…
创建索引 创建一个名为my_index的索引 PUT localhost:9200/my_index 创建映射 PUT localhost:9200/my_index/my_type/_mapping { "properties": { "name": { "type": "text" } } } 添加一个文档 PUT localhost:9200/my_index/my_type/2 { "name": "李锋镝" } 查询: GET localhost:9200/my_index/my_type/2 { "_i…
MySQL 使用 explain + sql 语句查看 执行计划,该执行计划不一定完全正确但是可以参考。 EXPLAIN SELECT * FROM t_store WHERE sn = 1; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t_store NULL ref sn sn 767 const 1 100.00 NULL 字段释义 select_type sel…
四大特性(ACID): 原子性(Atomicity) 原子性指事务所包含的所有操作要么全部成功,要么全部失败回滚。 一致性(Consistemcy) 一致性是指事务必须使数据库从一个一致性状态改变到另外一个一致性状态,也就是说事务执行之前和执行之后都必须处于一致性状态。 隔离性(Isolation) 隔离性是当多个用户并发访问数据库时,数据库为每个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要互相隔离。 持久性(Durability) 在事务完成后,该事务对数据库所作的更改永久保存在数据库之中,并不…
简介: Hibernate:ORM(对象关系映射)框架之一,对JDBC提供了比较完整的封装。Hibernate的O/R Mapping实现了POJO和数据库表之间的映射,以及SQL的自动生成和执行。 MyBatis:ORM框架之一,主要着力点在于POJO和SQL之间的映射关系。通过映射配置文件,将SQL所需的参数以及返回的结果字段映射到指定POJO。相对于Hibernate的O/R Mapping,MyBatis是一种SQL Mapping的实现。 对比: 1、开发 难易度: Hibernate的真正…
参照mongoDB的ID生成策略,生成唯一ID。 一共12个字节(示例:5cecf0a8a7573ea439fa1a89) 前4个字节表示时间戳 再往后数3个字节表示运行当前程序的机器ID 再往后2个字节表示生成此id的进程的ID 最后3个字节表示由一个随机数开始的计数器生成的值 然后转为16进制的字符串。 源码如下: import lombok.extern.slf4j.Slf4j; import java.io.Serializable; import java.net.NetworkInterface; im…
爆竹声中一岁除,春风送暖入屠苏。
千门万户曈曈日,总把新桃换旧符。
COPYRIGHT © 2022 lifengdi.com. ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang