用例描述 计数器 统计请求很常见,通过原子自增来维护计数。例如点赞数、收藏数、分享数等。 主列表排名列表按评分排序,例如按最近点击率、最热、最高、活跃度最高等显示排行榜。 用于存储时间戳 与队列列表类似,redis 的 zset 用于存...
使用redis作为缓存是很常见的,但是在使用redis之后也可能会遇到很多问题,尤其是数据量较大的时候。几个经典问题如下: (1) 缓存与数据库之间的数据一致性问题 在分布式环境中(更不用说单机),缓存与数据库之间很容易出现数据一致性问...
mysql中in和exists的区别mysql中的in语句是外表和内表之间的hash join,而exists语句是在外表上循环,每次都查询内表循环循环。大家始终相信exists的说法比声明中的更有效。这种说法其实是不准确的。这取决于环境。...
数据量有千万级,占用的存储空间也比较大。可以想象,它不会存储在连续的物理空间中,而是存储在碎片化的链式物理空间中。可能是为了比较长字符串,需要更多的时间去查找和比较,这就导致了更多的时间。 可以拆分表,减少单表列数,优化表结构。 在确保主键...
查找性能不佳的 SQL 语句最重要、最有效的方法是使用执行计划。我们知道,无论什么类型的数据库或数据库引擎,在SQL语句的执行过程中都会进行很多相关的优化。对于查询语句来说,最重要的优化方法就是使用索引。执行计划显示了数据库引擎输出SQL语...
索引是一种对数据库表中一个或多个列的值进行排序的结构。一个非常恰当的比喻是一本书的目录和书的正文内容之间的关系。为了方便搜索书籍内容,通过对内容建立索引来创建目录。索引是占用物理空间的文件。 主键索引:数据列不允许重复或NULL。一张表只能...
什么是数据库事务?如果没有东西的话会有什么后果呢?交易有什么特点? 事务是指作为单个逻辑工作单元执行的一系列操作,可以将其视为一系列 SQL 语句的单元。要么完全做,要么根本不做。 数据库如果不进行并行控制,可能会出现脏读、不重复读、幻读、...
什么是脏读?幻读?不可重复阅读?什么是事务隔离级别? mysql默认的隔离级别是多少? 脏读:事务A读取了事务B更新的数据,然后B回滚了操作,那么A读到的数据就是脏数据不可重复读:事务A多次读取相同的数据,事务B更新了并且在事务A的多次读取...
事物的隔离是如何实现的? 是基于锁实现的。 有哪些类型的锁?下面分别介绍一下。在DBMS中,根据锁的粒度不同,数据库锁可以分为行级锁(INNODB引擎)、表级锁(MYISAM引擎)、页级锁(BDB引擎)。 行级锁定行级锁定是Mysql中最...
生产环境数据量越来越大,客户越来越多,项目功能越来越多,而项目本身越来越多的结果是,之前服务器的内存和硬盘逐渐不足。当时就出现了两种解决方案,增加服务器配置和购买新服务器。不过即使加了新硬盘,数据库也得迁移,所以我们决定买一台新服务器,而且...