- 博客(14)
- 收藏
- 关注
原创 腾讯云服务器端口问题解决
关于腾讯云端口问题我们可以尝试使用firewalld来解决开放端口,但是如果发现还是用firewalld打开了但是还是不通,这时候我们应该考虑是不是iptables来影响的,我们这时候可以使用下面这命令来查看所有的iptables的规则。下面这条命令可以添加端口放开规则。
2024-06-05 16:16:57 572
原创 redis的延时
一般情况下数据库都是主从分离的,所以可能出现主从数据库数据不一致的情况。为了避免这种情况,就会延迟一会,等待主节点同步到从节点。所以要延时,但是这个延时时间不好控制,在这个过程中依然可能会出现脏数据。所以延时双删只是控制减少了脏数据的出现,但无法避免脏数据的出现。为了保证缓存和数据库的一致性。因为不管是先修改数据库还是先删缓存都会导致数据库和缓存的值不同。而两次删除缓存会避免这种情况发生。但是一般情况下数据库都是主从分离的,所以可能出现主从数据库数据不一致的情况。1、为什么要进行两次删除缓存呢?
2023-11-08 13:38:12 37
原创 SpringMVC的执行流程是什么?
(因为一个路径可能不止一个控制器方法,因为有的路径它会有拦截器,那他就会有拦截器方法和控制器的方法,所以它不止一个,所以就有一个方法的执行链)
2023-10-27 20:27:48 59
原创 共享锁和排他锁
{1}加共享锁 (S) : select* from table_name where ... lock in share mode;共享锁:当事务对数据加上共享锁后,其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁),直到已释放所有共享锁。排他锁:如果事务对数据A加上排他锁后,则其他事务不能再对数据A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。【2】开启事务(隔离级别为 Repeatable Read)共享锁只和共享锁兼容,排他锁和什么锁都冲突,都不兼容。
2023-10-13 17:29:01 37
原创 MVCC 实现原理?
判断当前版本的数据是否可见,如果不可见,再从版本链中找到上一个版本,继续进行判断,直到找到一个可见的版本。读操作:根据当前事务的时间戳选择合适的版本进行读取。写操作:生成新的版本并将新版本的记录插入数据表,同时保留旧版本的记录。事务隔离级别:不同的事务隔离级别提供不同的并发控制策略。MySQL的MVCC适用于高并发读写场景,多版本数据管理等场景。和版本链找到对应版本的数据。MVCC 就是同一份数据保留多版本的一种方式,进而实现并发控制。和版本链实现的,版本链保存有历史版本记录,通过。
2023-10-13 16:17:51 21
原创 什么是索引下推?
在MySQL5.6及以上版本,可以使用索引下推的特性。当存在索引的列做为判断条件时,MySQL server将这一部分判断条件传递给存储引擎,然后存储引擎会筛选出。在MySQL5.6之前,通过使用非主键索引进行查询的时候,存储引擎通过索引查询数据,然后将结果返回给MySQL server层,掉不符合条件的索引项,然后回表查询得到结果,将结果返回给MySQL server。新添加的特性,用于优化数据的查询。索引下推,也叫索引条件下推。,即在存储引擎层根据索引条件。
2023-10-13 14:12:54 66
原创 什么是覆盖索引?
表的二级索引,如果索引能覆盖到查询的列,那么就可以避免对主键索引的二次查询。不是所有类型的索引都可以成为覆盖索引。覆盖索引要存储索引列的值,而哈希索引、全文索引不存储索引列的值,所以MySQL使用b+树索引做覆盖索引。覆盖索引是指一个查询语句在执行时,所需的数据可以完全通过索引来获取,而无需访问实际的数据行。也就是说,查询语句所需的列都包含在了创建的索引中,不需要再去查询实际的数据行,从而提高查询性能。
2023-10-12 17:08:46 83
原创 什么是聚集索引?
InnoDB使用表的主键构造主键索引树,同时叶子节点中存放的即为整张表的记录数据。聚集索引叶子节点的存储是逻辑上连续的,使用双向链表连接,叶子节点按照主键的顺序排序,因此对于主键的排序查找和范围查找速度比较快。InnoDB 主键使用的是聚簇索引。内部会生成一个隐藏的主键作为聚集索引,这个隐藏的主键长度为6个字节,它的值会随着数据的插入自增。来说,聚集索引一般是表中的主键索引,如果表中没有显示指定主键,则会选择表中的第一个不允许为。如果没有主键也没有合适的唯一索引,那么。
2023-10-12 16:17:45 27
原创 为什么B+树比B树更适合实现数据库索引?
【1】由于B+树的数据都存储在叶子结点中,根节点和分支节点均为索引,方便扫库,只需要扫一遍叶子结点即可,但是B树因为其分支结点同样存储着数据,我们要找到具体的数据,需要进行一次中序遍历按序来扫,所以B+树更加适合在区间查询的情况,而在数据库中基于范围的查询是非常频繁的,所以通常B+树用于数据库索引。【2】B+树的分支节点和根节点只存储索引key值,具体信息的地址存在于叶子节点的地址中。减少更多的I/O支出。【3】B+树的查询效率更加稳定,任何关键字的查找必须走一条从根结点到叶子结点的路。
2023-10-12 14:55:30 97
原创 hash索引和B+树索引是什么?他们有什么区别?
2、B+树索引结构是一个多路平衡树,他的特点是根节点和分支节点只保存索引,所有的数据都存储在叶子节点中,叶子节点会包含所有的关键字以及指向数据记录的指针,并且叶子节点本身是根据关键字的大小由大到小的顺序组成一个双向链表,基于这个特点,使得B+树的高度在3-4层左右,就能够实现千万级别的数据存储,以及适合对于组件范围的查找和分页查找。【2】在查询效率方面,hash索引在等值的查询上具有一个较好的性能,可以在常数时间复杂度内直接定位到目标记录,但对于范围查询和排序操作,hash索引的性能可能会比较差。
2023-10-12 14:34:17 284
原创 Springboot注意事项
例如:在使用Springboot操作elasticsearch的时候在写elasticsearch操作的包里的接口继承了ElasticsearchRepository这个接口,并且在咱写的这个接口上面没有加上@Repository或@Component注解,最后在使用这个接口自动注入(@Autowired)的时候他竟然可以使用,就是因为这个ElasticsearchRepository接口属于JpaRepository接口所以它可以不写这个注解。
2023-04-07 17:18:26 178 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人