
数据库
文章平均质量分 83
sicaujh
这个作者很懒,什么都没留下…
展开
-
雪花算法snowflake的原理和实现
SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。在分布式系统中的应用十分广泛,且ID 引入了时间戳,基本上保持自增的,后面的代码中有详细的注解。这 64 个 bit 中,其中 1 个 bit 是不用的,然后用其中的 41 bit 作为毫秒数,用 10 bit 作为工作机器 id,12 bit 作为序列号。给大家举个例子吧,比如下面那个 64 bit 的 long 型数字:第一..转载 2021-04-04 17:09:23 · 750 阅读 · 0 评论 -
数据库查询优化的12种方式
查询优化方式:1 硬件层的优化1 CPU:个数 / 核数 / 频率 / 线程数 / 一级 cache/ 二级 cache2 内存 :容量与 64-bits/ 带宽3 I/O:seek(>100 次 / 秒 )/read/write(>10–20MB/s)4 网络 :带宽 / 传输协议2存储引擎优化1 InnoDB :1) innodb_buffer_pool_size : caching data and indexes in memory ,可...转载 2021-03-05 15:46:22 · 3078 阅读 · 0 评论 -
MySQL的可重复读级别能解决幻读吗
引言之前在深入了解数据库理论的时候,了解到事物的不同隔离级别可能存在的问题。为了更好的理解所以在MySQL数据库中测试复现这些问题。关于脏读和不可重复读在相应的隔离级别下都很容易的复现了。但是对于幻读,我发现在可重复读的隔离级别下没有出现,当时想到难道是MySQL对幻读做了什么处理?测试:创建一张测试用的表dept:CREATE TABLE `dept` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAU转载 2021-03-05 14:34:27 · 164 阅读 · 0 评论 -
MySQL-InnoDB-MVCC多版本并发控制
前言最近正在啃《高性能MySQL》这本书, 当看到事务相关知识时,决定对该知识点稍微深入一下, 《高性能MySQL》中在介绍事务相关知识点时, 显然不是特别深入, 很多比较底层的知识点并没有太多的深入, 当然此处并不是要对本书做什么评判,言归正传, 这里主要先说一下本人在啃相关知识点时的曲折之路:首先是事务相关ACID特性, 之前已经有相关笔记进行过介绍, 这里不再重复; 接下来是高并发事务相关的问题, 像是脏读,不可重复读,幻读,更新丢失等问题之前也有相关笔记; 再下来就是MySQL应...转载 2021-03-04 15:07:07 · 237 阅读 · 1 评论 -
Memcached和Redis之间的区别和选择
一、Memcached简介Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染转载 2021-02-01 19:26:40 · 233 阅读 · 0 评论 -
分布式系统中的CAP理论
一、什么是分布式系统拿一个最简单的例子,就比如说我们的图书管理系统。之前的系统包含了所有的功能,比如用户注册登录、管理员功能、图书借阅管理等。这叫做集中式系统。也就是一个人干了好几件事。后来随着功能的增多,用户量也越来越大。集中式系统维护太麻烦,拓展性也不好。于是就考虑着把这些功能分开。通俗的理解就是原本需要一个人干的事,现在分给n个人干,各自干各自的,最终取得和一个人干的效果一样。稍微正规一点的定义就是:一个业务分拆多个子业务,部署在不同的服务器上。 然后通过一定的通信协议,能够让这些子业务之转载 2021-02-01 14:31:16 · 180 阅读 · 0 评论 -
数据库之事务的四大特性&脏读、幻读、不可重复读的区别&事务的隔离级别
一、什么是事务事务:是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元);事务的四大特性:1 、原子性 (atomicity):强调事务的不可分割.事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做2 、一致性 (consistency):事务的执行的前后数据的完整性保持一致.事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库转载 2021-01-30 15:09:31 · 690 阅读 · 0 评论 -
DDL和DML区别
DML(Data Manipulation Language)数据操纵语言:适用范围:对数据库中的数据进行一些简单操作,如insert,delete,update,select等.DDL(Data Definition Language)数据定义语言:适用范围:对数据库中的某些对象(例如,database,table)进行管理,如Create,Alter和Drop.一、DDL(数据定义语言,Data Definition Language)建库、建表、设置约束等:create..转载 2021-01-29 14:30:13 · 620 阅读 · 0 评论