数据库
Guevara的笔记
这个作者很懒,什么都没留下…
展开
-
密码加盐加密存储及其登录验证方式
本文介绍一种常用的密码加密存储方式,并附上登录时验证用户密码的方法。代码用 Java 来实现,结尾附带有 github 的源码链接。用户注册账号,填写好密码后传递到后端。密码的形式一般是经过前端 md5 加密过的。登录校验根据账号来获取它的盐并且和登录时输入的密码求hash,此 hash 值和数据库存取的 hash 值相等则密码校验通过。原创 2021-01-05 16:14:03 · 3615 阅读 · 1 评论 -
Mysql事务的隔离级别
事务,所谓事务是用户定义的一个数据操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务具有4个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性简称为 ACID特性(ACID properties)。原创 2018-10-10 23:39:53 · 373 阅读 · 0 评论 -
Mysql主从复制(master-slave)
一、简介Mysql作为目前世界上使用最广泛的免费数据库,在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。读写集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性。Mysql的master-slave模式成为这个时候的网站标配了。一般来说都是通过 主从复制(...原创 2018-11-13 14:21:11 · 221 阅读 · 0 评论 -
什么是数据库分库分表?
中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了。有垂直和水平两种。我们也知道 mysql 单表存储量推荐是百万级,如果不进行处理,mysql 单表数据太大,会导致性能变慢。使用方案可以参考数据进行水平拆分。把4000万数据拆分4张表或者更多。当然也可以分库,再分表;把压力从数据库层级分开。原创 2019-08-14 14:11:40 · 1004 阅读 · 0 评论 -
如何解决数据迁移和热点问题?
hash是可以解决数据均匀的问题,range可以解决数据迁移问题,那我们可以不可以两者相结合呢?利用这两者的特性呢?我们考虑一下数据的扩容代表着,路由key(如id)的值变大了,这个是一定的,那我们先保证数据变大的时候,首先用range方案让数据落地到一个范围里面。这样以后id再变大,那以前的数据是不需要迁移的。但又要考虑到数据均匀,那是不是可以在一定的范围内数据均匀的呢?因为我们每次的扩容肯定会事先设计好这次扩容的范围大小,我们只要保证这次的范围原创 2019-08-14 14:48:07 · 870 阅读 · 0 评论