摘要: 假设字段k上的值都不重复,在k上选择唯一索引还是普通索引? 先从这两种索引对查询语句和更新语句的性能影响来进行分析。 查询过程 对于普通索引来说,查找到满足条件的第一个记录 (5,500) 后,需要查找下一个记录,直到碰到第一个不满足 k=5 条件的记录。 对于唯一索引来说,由于索引定义了唯一性,查 阅读全文
posted @ 2020-09-10 14:32 lee2guang 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 如下示例中,事务 B 查到的 k 的值是 3,而事务 A 查到的 k 的值是 1。为什么? mysql> CREATE TABLE `t` ( `id` int(11) NOT NULL, `k` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=I 阅读全文
posted @ 2020-09-09 10:24 lee2guang 阅读(146) 评论(0) 推荐(0) 编辑
摘要: MySQL 的行锁是在引擎层由各个引擎自己实现的。 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁。 定义:行锁就是针对数据表中行记录的锁。 两阶段锁 两阶段锁的定义:在 InnoDB 事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放,而是要等到事务结束时才释放。 阅读全文
posted @ 2020-09-08 15:16 lee2guang 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。 全局锁 全局锁的定义:就是对整个数据库实例加锁。 全局锁的典型使用场景:做全库逻辑备份。 业务的更新不只是增删改数据(DML),还有可能是加字段等修改表结构的操作(DDL)。不论是哪种方法,一个库被全局锁上以后,你要对里面任 阅读全文
posted @ 2020-09-07 15:06 lee2guang 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 在下面这个表 T 中,如果我执行 select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少行? 下面是这个表的初始化语句。 mysql> create table T ( ID int primary key, k int NOT NULL 阅读全文
posted @ 2020-09-07 13:11 lee2guang 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 为什么会有索引?索引是什么? 索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。 索引的常见模型 哈希表 哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的键即 key,就可以找到其对应的值即 Value。适用于只有等值查询的场景,比如 Memcached 阅读全文
posted @ 2020-09-07 09:45 lee2guang 阅读(121) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-09-02 10:09 lee2guang 阅读(0) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-08-24 13:58 lee2guang 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 生成证书 这里使用自己生成的免费证书。在$/bin 下可以看到keytool.exe,在改目录打开cmd然后输入: keytool -genkey -v -alias lgy.com -keyalg RSA -keystore d:\lgy.com.keystore -validity 3650 生 阅读全文
posted @ 2020-08-24 11:42 lee2guang 阅读(1872) 评论(0) 推荐(0) 编辑
摘要: 基本介绍 Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。 Shiro不会去维护用户、维护权限;这些需要我们自己去设计/提供;然后通过相应的接口注入给Shiro即可。 也就是说对于我们而言,最简单的一个Shiro应用: 1、应用代码通过Subject来进行认证和授权,而 阅读全文
posted @ 2020-08-06 17:59 lee2guang 阅读(113) 评论(0) 推荐(0) 编辑