自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一缕阳光的博客

在通向成功的道路上勇往直前

  • 博客(9)
  • 收藏
  • 关注

原创 MySQL中的表压缩功能

MySQL版本:8.0.22os:linux ubuntu语言:c++、c在MySQL中支持3种类型的表压缩,依次为:传统压缩、TPC压缩、字典压缩。第一种:传统压缩传统的表压缩方式是在MySQL5.0.7之前使用的,现在已经废弃了,因为这种方式不但没有提升数据库的效率,反而降低了效率,导致buffer pool的使用率降低了。create table时指定压缩后表的大小,即 KEY_BLOCK_SIZE 的大小,page默认大小为16KB。压缩是按page为单位进行压缩的。

2021-09-28 11:09:44 3917

原创 C语言库函数--strstr()

原型:extern char *strstr(const char *str1, const char *str2);需要包含的头文件:#include <string.h>作用:用于判断字符串str2在字符串str1中第一次出现的位置。如果没有找到则返回NULL,找到了则返回str1中的位置。下面的代码为例:ptr_zlib指向"zlib;compression=lz4"的首字符'z'#include <iostream>#include <strin

2021-09-24 20:41:14 1154

原创 kmp算法

这个时LeetCode上的一道题,具体的解题思路就不再重复了,网上很多自己查询,代码如下:int kmp(string s, string t) { if (0 == s.size() && 0 == t.size()) { return 0; } else if (0 == s.size() && 0 != t.size()) { return -1; } else if (0 != s.size() && 0 == t.size())

2021-09-24 20:39:59 129

原创 MySQL中innodb_page_cleaners详解

innodb_page_cleaners是MySQL中的刷脏线程个数,它的值等于innodb_buffer_pool_instances的值,如果innodb_page_cleaners的值大于innodb_buffer_pool_instances的值,那么自动的将innodb_page_cleaners调整为与innodb_buffer_pool_instances的值相同,其他情况不做调整。默认值都是1,如下图:[test]> select @@innodb_page_cleaners

2021-09-18 20:20:55 2478

原创 MySQL中update一条record的过程

在MySQL中,update是原地更新数据,原地更新数据,原地更新数据。重要的事情说3遍。这是不同于PGSQL的。update的具体过程是:(1)、先对该条record对应的索引加X锁(2)、将修改后的数据写入到redo.log中(3)、将修改之前的数据备份到undo.log中(4)、备份完毕,原地更新数据,修改txid,将roll_ptr指向undo.log中该条记录的备份,最后提交事务tx(5)、提交事务tx过程中,服务器突然宕机,再次重启时,重放redo.log中的日志进行数据

2021-09-18 19:52:24 513

原创 mysql 8.0 一条insert语句的具体执行流程分析(三)

代码版本:mysql 8.0.22编程语言:c++ && c++11 && c++14 && c++17上一篇文章:mysql 8.0 一条insert语句的具体执行流程分析(二)_一缕阳光的博客-CSDN博客主要介绍了存储引擎部分,这个章节主要介绍insert一条语句时有二级索引时需要调用哪些接口,调用接口的顺序如下:下面的接口基本上看源码就能理解,不再重述。下面以聚集索引和二级索引为例,聚集索引调用接口如下:| > row_

2021-09-18 19:36:46 584

原创 mysql 8.0 一条insert语句的具体执行流程分析(二)

继续上一篇文章:mysql 8.0 一条insert语句的具体执行流程分析(一)_一缕阳光的博客-CSDN博客由于最近换工作一直在试用期内,在拼命的学习、总结中,因此没有时间写文章,今天转正了腾出来时间继续写下一篇文章。mysql 8.0 一条insert语句的具体执行流程分析写完了write_record部分,下面将会运行到engine层,主要存储引擎的接口代码版本:mysql 8.0.22编程语言:c++ && c++11 && c++14 &&amp

2021-09-18 19:13:17 967

原创 std::make_shared<T>/std::make_unique<T>与std::shared_ptr<T>/std::unique_ptr<T>的区别与联系

(1)、std::make_shared<T>与std::make_unique<T>相对于std::shared_ptr<T>/std::unique_ptr<T>只有一次内存的分配(2)、std::make_shared<T>与std::make_unique<T>不会抛出异常;此外,std::make_shared<T>是在C++11中引入的;std::make_unique<T>在C++14中引入的

2021-09-18 17:36:10 206

原创 std::unique_ptr<T>与boost::scoped_ptr<T>的特殊性

std::unique_ptr<T>与boost::scoped_ptr<T>的底层实现原理类型,不清楚是谁"借鉴"另一个的实现的,但这不重要。std::unique_ptr<T>与boost::scoped_ptr<T> 都禁用了拷贝构造和赋值函数,所以不能作为STL容器中的元素,要作为STL容器中的元素时,那么进行push_back()时要调用赋值函数,但是他们都禁用了拷贝构造和赋值函数,所以不能作为STL容器中的元素。但是可以有另一种方法,使用s

2021-09-18 17:21:59 159

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除