自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一缕阳光的博客

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

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

原创 hdparm 命令 - 关闭磁盘写缓存

最近需要测试数据库的性能,需要关闭磁盘的写缓存,因此记录下 hdparm 命令的使用方法。Linux下的hdparm(英文全称:hard disk parameters)命令,主要用来查看硬盘的相关信息或对硬盘进行测速、优化、修改硬盘相关参数设定。它提供了一个命令行的接口用于读取和设置IDE或SCSI硬盘参数。若没有安装hdparm ,可以通过sudo yum install hdparm 来安装。用来查看硬盘的相关信息或对硬盘进行测速、优化、修改硬盘相关参数设定。用法如下:显示硬盘的相关设置。

2024-04-12 11:46:58 273

原创 TPCH 工具dbgen的安装与使用

这个网站下载TCPH的zip包,需要填信息(这里有时需要科技网,不然会莫名报错。至此,数据就生成了,科技进行下一步的操作了。首先创建放置数据的dir,假设当前在。生成数据(-s 1 表示生成1GB)下载后解压,然后修改。

2024-04-10 11:17:55 307

原创 2024年年初面试情况、就业环境和找工作的体验

总之,大环境确实没怎么好转,裁员、降薪还在继续,每个人都需要提高自己,找到自己的优势,拥抱变化,多元化自己的收入,特别是35+之后的人员,不过30+之后的也要开始考虑以后的事情了。2、大部分公司进行裁员,从2021年一直到现在2024年,一直在裁员,当然岗位也就收缩了。1、面试机会很少,而不是比较少,大部分公司不缺人,当然就不招人了。3、新的赛道业务、新的业务、赚钱的业务,可能还需要招聘人员。7、很多公司进行了降薪(高薪的员工首先会降薪,或者失业)5、本人周围的同事、同学也渐渐失业,有的转行。

2024-02-22 16:23:44 518

原创 设计复数类

优点:复数的定义与操作都集中到一个类中(实际上这个有时是缺点,进行其他的运算时会导致改动比较大)缺点:这个类的设计太过集中,有点过度设计,后续一旦有新的需求不好维护。优点:代码简洁,复数的定义与+/-操作是分开的,比较好。缺点:类中没有体现复数的操作(实际上这个是优点)

2024-02-22 15:47:19 394

原创 2023年度个人总结

在工作中最大的感触就是随时都要有离开的能力,任何公司也不会让员工养老的,以后的竞争会更加激烈,员工要时刻保持学习的能力,提升技术和分析问题解决问题的能力。后来找工作3个月了,也没有找到合适的工作,估计年前很难再找到合适的工作了,现在特别的焦虑和恐慌,上有60多岁的父母,下有8岁和1岁的2个孩子,自己每天都是活在焦虑中,希望尽快找到合适的工作。在新的一年要保持好的心态,多锻炼身体,多承担家务,减轻家人的负担,特别是减轻我妈妈的负担,毕竟我妈妈年龄大了身体也不如以前了,所以自己要多干点家务了。

2023-12-31 17:54:41 573

原创 将Linux 标准输出,错误输出重定向到文件

相应地,由于1=stdout没有变,还是屏幕,所以,那些命令执行时候输出的正常信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。相应地,由于2=stderr没有变,还是屏幕,所以,那些命令执行时候输出的错误信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。其中的2>&1表示错误信息输出到&1中,而&1,指的是前面的那个文件:build_output_all.txt。此时默认情况是没有改变2=stderr的输出方式,还是屏幕,所以,如果有错误信息,还是可以在屏幕上看到的。

2023-12-01 18:52:41 614

原创 SQLServer的常用数据类型

关于数据类型大家可能并不陌生,因为我们在C#中学了常用的数据类型,在数据库中其实也差不多,大部分都有对应关系的,只是关键字上有差别,接下来我们讲一下,请大家记住常用的就行。n表示精度,在1-53之间取值,当n在1-24之间时,精度为7位有效数字,占用4个字节;允许的范围1900-1-1至2079-6-6,smalldatetime精确到1分钟。允许的范围1753-1-1至9999-1-1, datetime精确到3/100秒。varchar(20)占用4个字节,可表示范围:-2³¹~2³¹-1之间的整数。

2023-11-24 14:50:22 304

转载 GaussDB为什么选择PostgreSQL

GaussDB A的前身是GaussDB 200,是华为自2011年开始基于PostgreSQL 9.2.4自主研发的一款具备多模分析及混合负载能力的大规模并行处理分布式数据库,支持行列混合存储以及线程化,支持高达2048节点的集群规模,提供PB(Petabyte)级数据分析能力、多模分析能力和实时处理能力。技术先进:PG号称是世界最先进的开源数据库,其先进性不仅体现在基本的存储、事务、查询处理等方面,更多的是体现在其新技术上,比如JIT查询计划的即时编译和外部表技术等。

2023-11-22 20:11:21 304

原创 Pgsql常用命令

create table ([字段名1] [类型1] <references 关联表名(关联的字段名)>;,[字段名2] [类型2],…alter table [表名] alter column [字段名] set default [新的默认值];alter table [表名] rename column [字段名A] to [字段名B];update [表名] set [目标字段名]=[目标值] where [该行特征];alter table [表名] add column [字段名] [类型];

2023-11-22 15:41:57 682

原创 PG与MySQL中查询库/表的命令区别

pgsql:\l 或者\l+(显示的信息要多一些)

2023-11-22 11:53:08 51

转载 PostgreSQL中page页结构

总的来讲,PG中页的结构大体上与Oracle的Block结构是比较类似的,都是采用向上涨的方式来存储记录。在PG中,磁盘存储和内存中的最小管理单位都是page,也是通常所说的block。但如果是表的page,那么这里是空的,没有任何信息。一个索引条目4个字节,由两部分组成:此记录在page中的offset和记录长度length。Page Header:为页头,主要存储LSN,page中空闲空间的开始offset和结束offset等。在一个page中,表的记录是从page的底部开始存储,然后慢慢向上涨。

2023-11-10 20:53:58 122

转载 Postgresql Page 结构

如果没有指定数据指针的位置,那么会尽量使用空闲位置的,通过检查 PD_HAS_FREE_LINES 标记位,就可以判断page 是否有空闲数据指针。中间的图片展示了两种插入情况,没有指定数据指针的位置,和指定了数据指针位置为第2个(也就是原有的 ItemData 1 空闲位置)并且指定了覆盖选项。如果指定了数据指针位置,并且设置了覆盖选项,那么首先会去检查该位置的指针是否已经被使用,如果没有被使用则直接修改指针属性和插入数据,否则就会报错。而数据区域的空间方向是相反的,从下面开始的,向上扩展。

2023-11-10 15:33:08 54

转载 MySQL死锁分析工具------pt-deadlock-logger

死锁:是指两个或则多个事务在同一个资源上相互占用,并请求锁定对方占用的资源,而导致恶性循环的现象;只能通过 show engine innodb status 查看,但只保留最后一个死锁的信息,之前产生的死锁都被刷掉了。--create-dest-table :创建指定的表。--dest :创建存储死锁信息的表。--database :-D,指定链接的数据库。--table :-t,指定存储的表名。--run-time :运行次数,默认永久--interval :运行间隔时间,默认30s。

2023-10-10 20:56:33 132

原创 生活的意义

每个人的日常开销是必须的,是生存的基础,但是除了这个基础之外,感觉国人都在拼尽全力 还房贷,包括我本人。有的人可能还有其他的贷款,很少有人停下脚本思考下 人生的意义是什么。当前在工作中,但是有30分钟的等待时间,不知道要说点什么,突然想到了:人生的意义!本人的一个小小的思考。由于话题太过敏感 标题就写了 "生活的意义"每天上班日复一日,除了日常开销 和 房贷 外,不剩下几个钱,

2023-07-11 16:26:01 1114

原创 使用python自动在禅道上创建bug,post成功,但是禅道上没有创建bug,如何解决?

【代码】使用python自动在禅道上创建bug,post成功,但是禅道上没有创建bug,如何解决?

2023-06-19 21:56:55 596 1

原创 UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xd0 in position 413: ordinal not in range(128)

在使用python 2.7编程时,在读取一个文件中的内容时出现了: UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 413: ordinal not in range(128) 报错信息,刚开始时不知道怎么处理,通过查找资料和增加打印的方式,发现文件中的内容有中文,中文不是utf-8编码。因此需要转换为utf-8编码。

2023-06-12 11:14:13 290

原创 MySQL 8.0.32之optimize table

语句时,optimize table 执行的是 recreate (mysql_recreate_table(...)) + analyze (handler::ha_analyze),不会阻塞其他的SQL的,并且该语句是online ddl。执行 optimize table之后,查看表的统计信息显示还是ROW还是2,Index_length也是0,因此统计信息并没有修改。最新使用到了optimize table ,不清楚是做什么用的,因此在8.0.32版本上测试了下该SQL语句。之后才会更新统计信息。

2023-04-19 18:22:57 908

原创 MySQL表碎片是如何产生的

在MySQL中执行delete语句时,该条记录并没有立即从ibd文件中删除,而是给该条记录打上了一个delete_flag删除的标签,如果一张表有5000w条记录时,那么执行其他SQL语句时会导致额外的访问该删除的列,因此导致效率低下。来清理垃圾数据,也就是重建表。所以如果我们用 delete 命令把整个表的数据删除,仅仅是,把所有的数据页都标记为可复用,磁盘上的文件大小并不会改变。InnoDB 的数据是按页存储的,如果删除一个数据页上记录,那么一整个数据页就可以被复用,并且可以被复用到任何位置。

2023-04-19 17:39:54 303 1

原创 将xlsx文件中内容转换到md文件

xlsx中的内容指的是表格内容,直接对xlsx中的内容 Ctrl + A ,然后Ctrl+c复制,此时,xlsx中的表格就会 完全的 显示在md文件中。

2023-02-24 10:52:41 1018

原创 2022年总结

同时在所在的公司经过22个月(1年加10个月)的历练对本行业有了新的认识和思考,对所重试的行业有了新的领悟,也学到了一些新的知识,提升了自己,得到了升华。大城市的娱乐还是比较多的,起码比我老家农村那边的娱乐项目比较多,但是对于普通的打工一族来说娱乐是比较少的,特别是有了孩子之后娱乐项目基本没有,加上2022年疫情,都不敢出去游玩了,对于大部分人来说,2022年是最不值得提起的一年,也是最不值得怀念的一年,因为这一年给了普通人最致命的一击,每个人都有深刻体会。主要分为以下几个方面,工作、生活、家庭和娱乐。

2022-12-30 18:07:25 378 1

转载 什么是 mmap

换言之,CPU 进行一次磁盘读写操作涉及的数据量至少是 4KB,但是进行一次内存操作涉及的数据量是基于地址的,也就是通常的 64bit(64 位操作系统)。mmap 受限于操作系统内存大小:例如在 32-bits 的操作系统上,虚拟内存总大小也就 2GB,但由于 mmap 必须要在内存中找到一块连续的地址块,此时你就无法对 4GB 大小的文件完全进行 mmap,在这种情况下你必须分多块分别进行 mmap,但是此时地址内存地址已经不再连续,使用 mmap 的意义大打折扣,而且引入了额外的复杂性;

2022-09-22 17:09:53 11130

转载 开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。而在MPL(1.1版本)许可证中,对源代码的定义是:“源代码指的是对作品进行修改最优先择取的形式,它包括:所有模块的所有源程序,加上有关的接口的定义,加上控制可执行作品的安装和编译的‘原本’(原文为‘Script’),或者不是与初始源代码显著不同的源代码就是被源代码贡献者选择的从公共领域可以得到的程序代码。LGPL是GPL的一个为主要为类库使用设计的开源协议。

2022-08-22 15:57:10 209

原创 MySQL中创建partition表的几种方式

其中,个人比较喜欢的方式是partition by hash(c) partitions xxx.数据库:MySQL 8.0.25。欢迎补充其他的方式。

2022-08-17 16:47:46 2126

原创 查询mysql单个分区的方法

今天工作中遇到了如何查询单个分区中数据的问题,记录下以便于后续再次遇到此问题就可以直接查询该文章了。数据库: musql 8.0.25。

2022-08-17 16:39:50 3238

原创 MySQL cast()函数以及json列

在工作中遇到了json列,不清楚如何写SQL,查询了下相关的文档之后总结下,根据json列的值进行区分,列值指的是 json_type(json列)的结果。2、列值为 time/date/datetime。3、列值为 signed/unsigned。5、列值为 double/float。6、列值为 timestamp。4、列值为 object。7、列值为array。...

2022-08-11 17:27:53 1554

转载 一定用得到的免费 C++ 资源,值得收藏!

提到C/C++语言很多初学者都觉得,学到中间就进行不下去了,但是如果你最难啃的那几块硬骨头拿下,一切都会顺畅许多,而且C++诞生很久了,因此有大量可以免费阅读编程文档。近日,在Quora上发现一份免费的C++资料列表,涉及到C++的各方各面。如果你对C++感兴趣,不妨继续往下看看看这些资料是不是你正需要的。...

2022-07-27 18:55:15 311

转载 多线程的互斥锁应用RAII机制

从输出结果上看,我们的锁是生效的,没有出现错乱。这里的资源可以是文件句柄,内存,Event,互斥量等等,由于系统的资源是有限的,就好比自然界的石油,铁矿一样,不是取之不尽,用之不竭的。在步骤一和步骤二上,我们平时都比较容易把握,而资源的释放会因为种种编码原因容易被忽略,导致系统资源实际没有使用了,但却没有释放或者引发其他问题,影响了系统资源利用率。RAII的做法是使用一个类对象,在对象的构造函数中获取资源,在对象生命期内控制对资源的访问,最后在对象消失时,其析构函数来释放获取的资源;......

2022-07-27 17:30:40 185

转载 并发与并行的区别

并发(concurrency)指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。并行在多处理器系统中存在,而并发可以在单处理器和多处理器系统中都存在,并发能够在单处理器系统中存在是因为并发是并行的假象,并行要求程序能够同时执行多个操作,而并发只是要求程序假装同时执行多个操作(每个小时间片执行一个操作,多个操作快速切换执行)。并发是指一个处理器同时处理多个任务。...

2022-07-26 17:37:02 8409 1

转载 普通的int main(){}没有写return 0;会怎么样?

但个人认为这也确实是不好的习惯,mian函数会犯这种错误,其它函数估计也会这样,所以最好所有的带有返回值的函数都添加returnxxx。网站更强大的功能是它支持市面上几乎所有的编译器,而且各个版本都有。得出结论正常一个带有返回值的函数,返回值都会存在某个地方,可能是栈上也可能是寄存器里,如果你不给它返回值,那可能外部获取的返回值就是个奇奇怪怪的值,因为咱也不知道那块地址是什么数据。看我右面红框圈出来的代码,大家可以理解为eax就是main()函数的返回值,这里可以看到main()函数的返回值是0。...

2022-07-26 15:37:53 1918

转载 对int变量赋值的操作是原子的吗?

count++;是原子操作吗?先说答案1、在单处理器下,如果将count++;语句翻译为单指令时,是原子操作。不过现在处理器都会对语句进行优化。2、在多处理器下,对于X86和ARM两个处理器来说(1)、在X86架构下,指令集提供了指令前缀lock用于锁定前端串行总线,保证了指令执行时不会收到其他处理器的干扰。因此是原子操作。(2)、在ARM架构下,引入了独占访问内存来实现"原子操作"。原问题什么指令集支持原子操作?其原理是什么?如果考虑到全部的指令集,问题太大了,这里简化下。...

2022-07-26 15:31:53 739

原创 main()的参数argc与argv

C语言中的main()函数,一般会带有2个参数,例如int main (int argc, char* argv[]),这是一个典型的main函数的声明。参数如下: argc: 整数, 为传给main()的命令行参数个数。 argv: 字符串数组。 在DOS 3.X 版本中, argv[0] 为程序运行的全路径名; 对DOS 3.0 以下的版本, argv[0]为空串("") 。 argv[1] 为在D

2022-06-21 18:44:24 737

原创 今年适合买房吗

本人是程序员,今天不聊程序相关的事情。不过今天有了点时间,考虑了下今年是否适合买房这件事。因为从中央到地方都在鼓励买房,每个人根据自己的实际情况决定是否要买房。优点:(1)、房贷利率低,基本上是历史低点了(2)、现在转到买方市场了,买家可以尽情的挑选房子。但是期房尽量选择央企,中小开放商的期房就不要去看了,你懂得。(3)、二手房市场低迷,可以选择的比较多,谈价的空间大缺点:(1)、疫情导致工作不稳定,收入不稳定,也就是月供不稳定。小心买了之后被法拍(2)、对于期房,开发商极度缺钱,很可能烂尾,维权困难。例如

2022-06-17 18:23:31 129

原创 MySQL中varchar(11)与int(11)的区别

结果:对于varchar(11):最多存储11个字符,超过则不存。mysql> create table tt(c1 int primary key,c2 varchar(50))engine=xxx;Query OK, 0 rows affected (0.15 sec)mysql> insert into tt values(1, 'aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeef');ERROR 1406 (22001

2022-05-31 15:09:49 448 1

原创 记一次使用pt-query-digest工具分析MySQL慢查询日志

最近遇到了MySQL性能问题,使用percona 的 pt-query-digest工具分析性能的瓶颈点。并且pt-query-digest工具要优于MySQL本身自带的mysqldumpslow工具。查看pt-query-digest工具在ubuntu下的安装流程请看:ubuntu下安装pt-query-digest_一缕阳光a的博客-CSDN博客https://blog.csdn.net/zgaoq/article/details/124710484?spm=1001.2014.3001.550

2022-05-11 16:13:00 412

原创 ubuntu下安装pt-query-digest

最近在开发MySQL时要使用pt-query-digest工具分析性能问题,也一路遇到了一些问题,记录下俩偏于日后翻看。系统: #45~20.04.1-Ubuntu SMP Mon Apr 4 09:38:31 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux在安装过程中遇到了很多的问题,官网给的直接安装失败,不再贴图,下面是安装成功的过程:Ubuntu下安装pt-query-digest的过程:(1)、安装percona-toolkitsudo a

2022-05-11 15:10:00 598

转载 mysqld_safe启动脚本源码阅读与分析

原文链接:https://blog.csdn.net/weixin_39844426/article/details/113422137前几天读了下mysqld_safe脚本,个人感觉还是收获蛮大的,其中细致的交代了MySQL数据库的启动流程,包括查找MySQL相关目录,解析配置文件以及最后如何调用mysqld程序来启动实例等,有着不错的参考价值;与此同时,脚本中涉及了很多shell编程中的小技巧,像变量解析,sed替换转义,进程优先级的判断以及无处不在test结构等等,当作Linux shell的学习

2022-05-09 18:28:26 603

转载 mysql ld preload过程

纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注。导读本文将叙述通过二进制源码方式安装Percona-5.7.15,并进行快速启动。这边如何使用二进制版本安装Percona-5.7.15就不说了,和之前一模一样。不做多余的事1、解压2、创建用户3、创建相关目录并且赋予MySQL权限4、使用mysqld初始化麻烦的地方按道理来说安装和启用MySQL应该是一件很容易的事,特别是使用二进制版本安装的特别容易的,只要解压初始化就行了。但是在Percon

2022-05-09 18:25:38 467

原创 MySQL字段值大小写敏感的解决方案

最近在用开源的MySQL 8.0开发本公司的产品,在客户现场建表时默认使用的是CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 字符集导致与oracle的结果不一致,最后将建表时的字符集改为utf8mb3就可以了。正常建表如下,默认使用的是CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 字符集[test]> CREATE TABLE t3(id int primary key, name varchar(50))eng

2022-04-27 16:38:16 2520 1

原创 MySQL中的insert ignore into讲解

最近工作中,使用到了insert ignore into语法,感觉这个语法还是挺有用的,就记录下来做个总结。insert ignore into : 忽略重复的记录直接插入数据。包括两种场景:1、插入的数据是主键冲突时insert ignore into会给出warnings,show warnings就可以看到提示主键冲突;[test]> create table tt(c1 int primary key, c2 varchar(50))engine = xx;Query

2022-04-26 17:41:05 41565

原创 STL中的set/map

std::set/std::map底层实现的机制是红黑树,树中的数据是有序的,那么进行插入、删除、查找时的平均时间复杂读O(logN),以2为低的对数N。set相当于map中的key,map中的key不能有重复的并且按升序进行排序,如果结构体作为map中的key,需要重写小于函数实现排序的功能。std::unordered_set<T>和std::unordered_map<T, T>底层实现方式是哈希表,其中的数据是无序的。查找时效率高,没有hash冲突情况下时间复杂度是O

2022-04-18 19:35:57 1126

空空如也

空空如也

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

TA关注的人

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