- 博客(72)
- 资源 (12)
- 收藏
- 关注
原创 InnoDB ICP、MRR、BAK特性
一、Index Condition Pushdown(ICP)Index Condition Pushdown(ICP)是MySQL使用索引从表中索引行检索行数据的一种方式,从MySQL5.6开始支持。1.1 解决了什么问题在MySQL5.6之前,存储引擎通过编译索引定位基表中的行,然后返回给Server层,再去这些数据行进行WEHERE后的条件过滤。在MySQL5.6后支持ICP后,如果WHERE条件可以使用索引,MySQL会把这部分的过滤操作放在存储引擎层,把满足的行从表中读取出。ICP能够减少引
2020-08-15 14:33:44
721
1
原创 InnoDB关键特性-异步IO、刷新邻接页
一、IO分类1)同步IO(Sync IO),即每次IO操作,需要等待此次操作结束后,才能继续接下来的操作;2)AIO(Asynchornous IO),发出一个IO请求后立即发出另外一个IO请求,当全部的IO请求发布完成后,等待所有的IO操作完成;3)Native AIO,内核级别提供的异步IO支持;二、异步IO2.1 异步IO解决了什么问题若没进行一次IO操作,需要等待此次操作结束后才能继续接下来的操作。如果用户发出的是一条索引扫描的查询,那么这条SQL查询语句可能需要扫描多个索引页,即多次进
2020-08-09 16:31:07
371
原创 InnoDB关键特性-插入缓冲
一、什么是插入缓冲(Insert Buffer) 在InnoDB存储引擎中,主键是行的唯一标识符。通常应用程序查询顺序是按照主键递增的顺序进行插入的。因此,插入聚集索引一般是顺序的,不需要随机读取。如下按照下列SQL定义表。create table t( a int auto_increment, b varchar(30), primary key(a), key (b)); 其中a列是你自增长的,对a列进行插入NULL,则会自动增长。同时页中的行记录
2020-08-08 15:48:59
736
原创 etcd v3服务注册与发现
参考博客:https://www.cnblogs.com/sevenPP/p/8149890.htmlETCD服务注册分为以下几个步骤:服务向ETCD注册自己的信息,即在ETCD的某个目录下创建Key以及填写Value;服务可能异常退出,所以需要维护一个TTL(V3使用lease实现),当服务异常退出时,监听程序可以监听到;监听程序,可以根据自己的需求监听服务的事件;(添加、修改、删除)...
2019-07-06 18:18:28
3216
1
原创 QML ListView数据修改刷新问题
1.问题在QML的ListView控件,再填充数据之后,我们有时候还需要对model中的数据进行更改。可是,对model数据进行修改之后,ListView的数据并没有及时刷新出来。甚至有时候forceLayout()也没有作用。2.解决办法我们可以获取ListView对象的委托item,通过修改item的属性及时达到刷新的目的。例如QML如下:ListView { id: layer_...
2019-05-19 16:55:41
12360
1
原创 QML TEXT内容上下、左右效果实现
1.效果想要使用QML实现滚动Text的效果,即“能够逐条上下滚动,当每条内容超过Text显示的长度时,鼠标移至上去时,能够左右滚动”;2.实现思路上下滚动:实际上使用ListView控件,只让该控件显示一行,每次更改当前的item即可,然后在更换当前item的时候添加动画即可。当移至最后一行时,可以先将第一行移至最后一行,再更换当前item,这样就避免了移到最后出现空白的情况。左右移...
2019-05-14 20:41:55
3348
原创 《Windows》内核对象
感谢两位兄弟优秀的总结:https://blog.csdn.net/Sagittarius_Warrior/article/details/52247917https://blog.csdn.net/ljianhui/article/details/8171266内核对象(Kernel Object)是Windows操作系统中的一个核心概念。本章主要介绍了“内核对象”的公共属性:usage...
2019-03-17 15:24:07
1261
原创 NodeJS 文件夹拷贝以及删除
文件夹拷贝function CopyDirectory(src, dest) { if (IsFileExist(dest) == false) { fs.mkdirSync(dest); } if (fs.existsSync(src) == false) { return false; } // console.lo...
2019-03-17 14:21:29
4772
原创 NSIS 基于QT的自定义安装界面
前端时间在做安装程序时,需要自定义安装界面代替传统的打包工具制作的安装界面。毕竟打包工具制作的界面定制麻烦也比较丑。我们可以使用第三方界面库写安装程序,再在NSIS脚本中调用即可。采用NSIS + QT 制作安装程序实际上就是使用QT制作安装程序,而NSIS仅仅将制作的安装程序打包成一个exe。1.核心NSIS脚本;这次是打包生成exe的路径OutFile ${TheOutFile}...
2019-03-17 13:44:57
7450
11
原创 C++获取操作系统的名称
添加头文件#include <iostream>#include <string>#ifdef WIN32#include <Windows.h>#include <WinBase.h>#endif实现std::string GetOSName(){ std::string osname = "";#ifdef WIN32...
2019-03-06 19:19:10
1197
原创 C++ 打开选择文件夹对话框选择目录
需要添加头文件:#ifdef WIN32#include <shlobj.h>#endif调用文件对话框选择目录:// 选择目录void CustomInstalWndViewCtrl::OnSigBtnSelectInstallDir(){ BROWSEINFO bi; bi.hwndOwner = NULL; bi.pidlRoot = CSIDL_DESK...
2019-02-23 16:17:09
10405
4
原创 C++解压库bit7z编译以及使用
1.编译bit7z库bit7z是一个C++静态库,其封装了简单易用的接口,用于调用7-zip库;编译该库,首先需要下载以下源码:下载bit7z:https://github.com/rikyoz/bit7z下载lzma:https://jaist.dl.sourceforge.net/project/sevenzip/LZMA SDK/lzma1805.7z解压bit7z、lzma;在...
2019-02-23 16:13:32
7381
1
原创 “C语言编写NSIS插件与调用”示例
NSIS可以和C/C++混合编程,就是通过NSIS脚本加载C/C++的动态库。1.首先创建动态库如下:// Demo.h文件#ifdef DEMO_EXPORTS#define DEMO_API extern "C" __declspec(dllexport)#else#define DEMO_API extern "C" __declspec(dllimport)#endifD...
2019-02-18 19:42:50
1124
1
原创 QML ListView鼠标拖动交换两项的位置
QML中ListView实现鼠标点击拖动交换两个item的位置,实现如下效果:首先,重写ListView的move属性,如下代码所示:ListView { id: layer_list model: modelLayer delegate: delegateLayer interactive: false mov...
2019-02-18 19:33:59
1577
1
原创 LIB和DLL的区别,生成以及使用
参考该博客:https://www.cnblogs.com/TenosDoIt/p/3203137.html1.基本概念首先,介绍下动态链接库和静态链接库的概念,两者都是代码共享的方式。静态库:在链接步骤中,链接器将从库文件中取得代码,复制到可执行文件中,此种称为静态库。其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。即静态库中的指令都全部被直接包...
2019-02-16 16:49:22
2003
原创 NSIS添加公司、描述、版本等
更改NSIS脚本变量的值NSIS 在编译应用程序时,可能会动态更改变量的值,这个时候可以通过命令行传入的方式进行更改,如下所示,我们需要更改的值是OutFile的名称:OutFile ${ExecName}这个时候,我们在运行命令时,传入命令如下即可更改ExecName的值了,传入命令如下:G:\NSIS_Setup>E:\\NSIS\\makensis.exe /DExecNam...
2019-02-14 16:20:00
683
原创 Jenkins修改Job工作空间、修改日志路径
配置Job的工作空间Job-&gt;Configure-&gt;General-&gt;Advanced-&gt;Use custom workspace搭建自动化编译创建一个自由风格的软件项目,并输入名字设置项目的GIT地址修改Jenkins的日志路径在Jenkins安装路径C:\Users\Administrator.jenkins下,文件config.xml中修改配置,同理工...
2019-02-14 16:13:48
13355
3
原创 C++线程池
复制这位同学:https://blog.csdn.net/liushengxi_root/article/details/839326541.概述:什么是线程池因为程序边运行边创建线程是比较耗时的,所以我们通过池化的思想:在程序开始运行前创建多个线 程,这样,程序在运行时,只需要从线程池中拿来用就可以了.大大提高了程序运行效率。2.如何实现线程池一般线程池都会有以下几个部分构成:线程池...
2019-01-21 21:01:24
3449
原创 APUE学习笔记-文件共享
文件共享Unix系统支持在不同的进程间共享打开文件。其结构如下所示:内核使用了三种数据结构,它们之间的关系决定了在文件共享方面一个进程对另一个进程的影响。每个进程在进程表中都有一个记录项,在每个记录项中都有一张打开的文件描述符表,每个描述符占用一项。与每个文件描述符相关联的是:文件描述符,文件描述符;指向一个文件表项的指针;内核为所有打开的文件维持一张文件表。每个文件表包...
2019-01-09 19:27:05
263
原创 APUE学习笔记-文件IO
一、文件描述符按照惯例,UNIX shell使用文件描述符0与进程的标准输入相结合,文件描述符1与标准的输出相结合,文件描述符2与标准出错输出相结合。二、相关函数open函数如下,返回文件描述符int open(const char* pathname, int oflag, mode_t mode)oflag参数可以用一个或者多个常数构成:O_RDONLY 只读打开O_WRON...
2019-01-09 00:33:19
244
原创 APUE学习笔记-UNIX基础知识
1.登录1.1 登录名系统在其口令文件,通常是在/etc/passwd文件中查看登录名。口令文件中的登录项由7个以冒号分隔 的字段组成:登录名、加密口令、数字用户ID(224),数字组ID(20)、注释字段、起始目录(/home/stevens),以及shell程序(/bin/ksh)。1.2 shellshell是一个命令行解释器,其读取用户输入,然后执行命令,用户通常使用终端,有时通过...
2019-01-06 10:02:46
293
2
原创 VS调试技巧-基础
1.实时改变值在调试时,发现一个值不是期待的值,可以通过鼠标双击键入新的值。2.设置下一条语句有时通过单步跟踪分析一个函数为什么失败了,当发现一个函数调用另外一个函数返回错误的时候,想要查看为什么出错,这个时候不需要重启调试,直接拖动黄色的箭头到想要执行的语句,然后步入即可。3.编辑代码继续调试当发现某处编码逻辑错误时,又不想浪费时间停下来重新编译然后重新调试。这个时候可以修改错误的...
2018-12-23 11:31:49
355
原创 QWindow重绘、避免闪烁
1.处理重绘事件的函数QWindow的重绘与QWidget重绘有点不一样,QWindow的没有提供PaintEvent相关的函数,这个时候可以重写下面的虚函数,在里面对Paint事件进行处理:[virtual protected] bool QWindow::event(QEvent *ev)2.重绘的Painter在QWindow中,获取一个QPainter对象可以通过QBacking...
2018-12-15 13:52:59
3652
2
原创 QML 窗口失去焦点、任务栏图标隐藏
1.窗口失去焦点隐藏对于ApplicationWindow使其失去焦点隐藏,通过以下即可:ApplicationWindow { id: root onActiveFocusItemChanged: { if (!activeFocusItem) { root.visible = false } }}2.关闭应用程...
2018-12-15 13:47:33
3698
1
原创 QML圆角图片
QML圆角图片可以使用OpacityMask来实现,具体可以查看Qt的文档“OpacityMask”,其中圆角图片实现如下:OpacityMask中的source表示你要显示的图片,maskSource表示将图片固定在此区域内显示。CircularImage.qmlimport QtQuick 2.6import QtGraphicalEffects 1.0Rectangle { ...
2018-10-30 19:22:16
2673
原创 QML学习例子一
心血来潮,在公司学习了几天的QML,于是乎周末回家后写个小例子练练手,于是就有了下面的QML页面.该页面还算比较简单,实现了滚动切换,希望对初学者学习QML有点帮助。运行:在QT的bin目录下找到qml.exe,运行以下命令即可:qml.exe MainWndView.qml代码以及资源链接:https://download.csdn.net/download/llmys/1073556...
2018-10-21 21:34:10
2494
原创 mocha测试简单使用
复制粘贴两位大佬的: 测试框架 Mocha 实例教程 【阮一峰】 http://www.ruanyifeng.com/blog/2015/12/a-mocha-tutorial-of-examples.html mocha 【廖雪峰】 https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bd...
2018-09-09 20:52:49
4691
原创 C++ 临界区、信号量简单介绍
生产者-消费者模式中会用到信号量进行同步。比如多个生产者线程产生的消息放置在一个链表中或者一个环形缓冲区中,消费者线程从链表或者环形缓冲区去读取消息。这个时候需要用到信号量和临界区。下面介绍一下信号量和临界区信号量:// 创建信号量,函数返回值:信号量的句柄HANDLE CreateSemaphore( // 安全控制,一般传入NULL LPSECURITY_ATTRIBU...
2018-09-02 15:04:13
1196
原创 源码安装samba
1.解压、编译、安装# tar -zxvf samba-3.5.10.tar.gz # cd /opt/soft/samba/samba-3.5.10/source3/# ./configure# make# make install2.配置动态链接库路径安装的默认路径为:/usr/local/samba/,此时在该目录sbin路径下可以看到nmbd、smbd,但现在还不可以...
2018-08-22 11:54:53
1981
原创 CentOS配置yum源
1.CentOS默认的yum文件目录如下:-rw-r--r-- 1 root root 1926 Dec 21 2017 CentOS-Base.repo-rw-r--r--. 1 root root 638 Feb 25 2013 CentOS-Debuginfo.repo-rw-r--r--. 1 root root 630 Feb 25 2013 CentOS-Medi...
2018-08-21 17:27:17
354
翻译 【CIS基线-CentOS6-v2.0.2】 模块:服务,子模块:特殊用途的服务
检查项: Ensure time synchronization is in use检查项: 确保时间同步正在使用描述: 同一环境的系统的系统时间应该同步,这通常通过建立时间服务器或者一个服务器集,并将所有的系统时 间同步。原理: 对于时间敏感的安全机制(如kerberos),时间同步极其重要。同时时间同步还可以确保日志文件的时间一 致性,这...
2018-08-15 15:52:52
972
翻译 【CIS基线-CentOS6-v2.0.2】 模块:服务,子模块:inetd服务
虽然应用系统更新和修补程序有助于纠正已知漏洞,但保护系统免受尚未报告的漏洞的最佳方法之一是禁用正常系统操作不需要的所有服务。这可以防止利用以后发现的漏洞。如果未启用服务,则无法利用该服务。本部分中的操作为某些可安全禁用的服务提供了指导,并在何种情况下大大减少了对最终系统可能造成的威胁的数量。此外,一些服务在安全配置的情况下也能保持启用。检查项: Ensure chargen ...
2018-08-14 15:20:24
669
翻译 【CIS基线-CentOS6-v2.0.2】 模块:初始化设置,子模块:警告、提示信息
检查项: Ensure message of the day is configured properly检查项: 确保当天消息配置正确描述: /etc/motd文件的内容在登录后显示给用户,并作为当天的消息用于经过身份验证的用户。 基于Unix的系统通常在登录系统时显示有关操作系统版本和补丁级别的信息。 此信息对于为特定OS平台开发软件的开发人员非常有用。 ...
2018-08-14 10:50:14
1011
翻译 【CIS基线-CentOS6-v2.0.2】 模块:初始化设置,子模块:配置软件更新、文件系统完整性检查、安全启动设置、额外的流程强化
检查项: Ensure package manager repositories are configured检查项: 确保"配置了包管理器存储库"描述: 系统需要配置包管理器存储库以确保它们接收到最新补丁和更新。 原理: 如果系统的软件包存储库配置错误,则可能无法识别重要的修补程序,或者恶意存储库可能会引入受损软件。配置方法: 根据站点策略配置包...
2018-08-13 19:18:22
1764
1
翻译 【CIS基线-CentOS6-v2.0.2】 模块:初始化设置,子模块:文件系统配置
检查项: Ensure mounting of cramfs filesystems is disabled检查项: 确保"禁用CramFS文件系统"描述: CramFS文件系统是专门针对闪存设计的只读压缩的文件系统,其容量上限为256M,采用zlib压缩,文件系统类型可以是EXT2或EXT3.CramFS文件系统并不需要一次性地将文件系统中的所有内容解压到ram,而...
2018-08-13 19:01:30
3282
原创 spring quartz实现定时任务、延时任务的动态增、删、改、查
配置见前面两篇博客RAMJobStore方式配置,https://blog.csdn.net/llmys/article/details/81069445 JobStoreTX方式持久化在数据库中,https://blog.csdn.net/llmys/article/details/81069638首先我需要的quartz相关的信息包括任务名称、任务组名称、作业开始时间、作业结束时间等,...
2018-07-16 19:15:50
4331
原创 spring quartz定时器配置-JobStoreTX方式持久化在数据库中
配置quartz持久化在数据库中,同样需要以下三步配置,如下:首先需要引入quartz所依赖的jar包 创建quartz_jobs.xml文件用于配置调度器 引入quartz_jobs.xml以上三个步骤,见上篇博客:https://blog.csdn.net/llmys/article/details/81069445只是在为quartz定时器配置数据库时,在quartz_jobs...
2018-07-16 18:40:49
3298
原创 spring quartz定时器配置-RAMJobStore方式配置
1.Quartz存储Job的方式分为三种: 常用的RAMJobStore,RAMJobStore将Job相关信息保存在内存中;在程序启动时,从xml中装载Job信息或者通过代码动态添加任务到内存中,应用重新启动后,定时任务信息将会丢失 另外两种为JobStoreTX和JobStoreCMT,使用这两种JobStore,quartz就会自动将Job的信息保存在数据库中,如果应用程序...
2018-07-16 18:27:21
4088
原创 Qt 绘制文本、直线、矩形、椭圆、多边形
绘制文本、直线、矩形、椭圆、多边形小例子void MainWindow::paintEvent(QPaintEvent *event){ Q_UNUSED(event) QRect rectWnd = this->rect(); // 绘制文字 QPainter painter(this); // 设置画笔颜色 painter.setP...
2018-07-08 11:48:51
7250
原创 nodejs ssh2 输出调试信息
在使用nodejs ssh2库时,我们可能需要输出调试信息,输出调试信息在连接时调用connect函数就可以使用debug字段设置。如下:var Client = require('ssh2').Client;var host = { "debug": function (err) { console.log(err); }, "host": "19...
2018-06-25 19:43:04
1585
Hadoop权威指南(中文)高清完整版PDF 第五版
2017-10-11
Hadoop权威指南(中文)高清完整版PDF
2017-10-11
c++日志库(windows、linux)
2017-08-04
linux telnet安装包
2016-12-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人