Redis提供内存统计命令,在客户端通过 redis-cli 连接服务器后,通过 info 命令可以查看内存使用情况:info memory。 127.0.0.1:6379> info memory # Memory used_memory:3223164040 #Redis分配的内存总量,即…
Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Value可以由String,hash,list,set,zset,Bitmaps,HyperLogLog等多种数据结构和算法组成。Redis还提供了键过期,发布订阅,事务,Lua脚本,哨兵,Cluster等功能。Red…
什么是遴选 使用遴选(cherry-pick)命令,Git 可以让你将任何分支中的个别提交合并到你当前的 Git HEAD 分支中。 当执行 git merge 或者 git rebase 时,一个分支的所有提交都会被合并。cherry-pick 命令允许你选择单个提交进行整合。 使用 cherry…
一维数组 #include <stdio.h> int main(){ int arr[] = {3,1,2,3,4,5,6,7,8,9,10}; int *pa = (int *) arr; for (int i = 0; i < 10; ++i) { printf("…
相当于A的独有+B的独有 select * from a full outer join b on a.key = b.key where a.key is null or b.key is null 此写法只在oracle中适用,在mysql中得用union select * from a lef…
我们在创建表时一般都会创建自增的ID主键,由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧凑。那自增的主键是如何实现的呢? 为了便于说明,我们创建一个表 t,其中 id 是自增主键字段、c 是唯一索引,并添加点数据。 CREATE TABLE `single` ( `id…
在MySQL 8.0.23之前,表中所有的列都是可见的(如果您有权限的话)。现在可以指定一个不可见的列,它将对查询隐藏。如果显式引用,它可以被查到。**** 创建表 CREATE TABLE `table1`( `id` INT AUTO_INCREMENT PRIMARY KEY, `name` …
当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页”。 第一种场景 是 InnoDB 的 redo log 写满了。这时候系统会停止所有更新操作,把 checkpoint 往前推进,redo log 留出空间可…
MySQL中的 order by 是高频操作,并且对性能影响非常大,所以如果想要对排序有比较深的认知,并且对关键耗时排序进行优化,那么首先需要Mysql内部对于排序操作的实现原理。 在此之前需要对排序算法有比较深入的理解,排序算法种类非常多,但是项目工程中常用的是时间复杂度为 O(N*logN) 的…
普通索引 普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHERE column=)或排序条件(ORDERBY column)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)…