自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

分享技术,分享知识

记录学习,工作中的点点滴滴,欢迎访问个人网站,www.mytecdb.com

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

原创 MySQL如何避免全表扫描

MySQL全表扫描在大多数场景下性能都是非常低下的,尤其在表数据量特别大的情况下,全表扫描会耗尽数据库资源,严重时会导致数据库服务不可用,数据库崩溃,因此,业务SQL在发布上线前,应当检查是否会导致全表扫描。原文地址:https://mytecdb.com/blogDetail.php?id=1041. MySQL全表扫描的原因通过对SQL执行explain,在输出信息中如果type字...

2020-03-17 09:03:32 1281

原创 markdown在线编辑工具,在线渲染,转换html

今天偶然看到一篇文章,讲的是一个开源的markdown渲染工具Markdeep,它能够将Markdown格式的文本渲染出来,并在网页上展示。另外,Markdeep还支持非markdown格式的纯文本渲染,以及额外支持图表、数学方程等扩展能力。更多功能,请访问官方文档:http://casual-effects.com/markdeep/Markdeep使用方式也很简单,只要在Markdown文...

2020-03-15 18:11:12 923

原创 MySQL性能优化-索引条件下推ICP(Index Condition Pushdown)

索引条件下推,Index Condition Pushdown,简称ICP,是MySQL通过索引查询数据的一种优化方法,对于特定场景下的SQL优化具有明显的性能提高。原文地址:https://mytecdb.com/blogDetail.php?id=971. ICP索引下推原理举一个例子,有一个索引如下:idx_all(a,b,c)查询语句:select d from t wh...

2020-03-14 16:21:19 455

原创 MySQL性能优化-条件过滤(Condition Filtering)

MySQL在处理join查询时,遍历驱动表的记录,把驱动表的记录传递给被驱动表,然后根据join连接条件进行匹配。优化器通常会将更小的表作为驱动表,通过在驱动表上做额外的where条件过滤(Condition Filtering),能够将驱动表限制在一个更小的范围,以便优化器能够做出更优的执行计划。原文地址:https://mytecdb.com/blogDetail.php?id=97...

2020-03-14 16:19:05 1614

原创 如何开发一个自定义的MySQL插件

MySQL自带了很多插件,比如半同步插件、审计插件、密码验证插件等等,甚至MySQL存储引擎也是以插件方式实现的。MySQL开放的插件接口,为开发者开发自定义插件提供了便利。本文将介绍如何快速开发一个自定义的MySQL插件。原文地址:https://mytecdb.com/blogDetail.php?id=92一、开发环境准备下载MySQL源码,本文使用的源码是 Percona S...

2020-03-14 16:16:57 613

原创 MySQL主从复制从库SQL线程源码分析

MySQL主从复制通过Binlog进行数据传输,主库写入数据,生成Binlog,通过dump线程将Binlog发送给从库,从库IO线程接收Binlog并写入自己的relay log,SQL线程应用relay log里的事务。本文结合MySQL源码,分析SQL线程的主要处理过程。MySQL源码版本:5.7.19原文地址:https://mytecdb.com/blogDetail.php?...

2020-03-14 13:21:25 533

原创 MySQL主从复制过滤

MySQL主从复制是逻辑复制,基于Binlog进行主从数据传输,MySQL提供了丰富的参数来配置主从复制过滤条件。在主库可以设置对于库的数据写入是否写入binlog,在从库可以设置对某些库或者表的binlog是否忽略。本文将简单描述MySQL主从复制过滤的相关参数和常见用法。原文地址:https://mytecdb.com/blogDetail.php?id=88MySQL版本:5.7.1...

2020-03-14 13:20:07 907

原创 MySQL主从复制主库binlog dump线程源码分析

在之前的文章《mysql主从复制io线程源码分析》,我们分析了MySQL从库的io线程工作的主要过程,大致回顾一下,如下:连接主库发送COM_REGISTER_SLAVE命令注册从库发送COM_BINLOG_DUMP_GTID命令请求拉取binlog下面将结合源码,分析一下主库接收到从库io线程发送过来的命令后,是如何具体处理的。MySQL源码版本:5.7.19原文地址:http...

2020-03-14 13:17:29 1275

原创 MySQL主从复制从库IO线程源码分析

mysql主从复制通过binlog来同步数据,在从库上执行start slave,会开启两个线程,分别是io线程和sql线程。io线程负责从主库拉取binlog并存储到本地的relay log,sql线程负责把relay log中的事务在从库应用。本文将结合源码分析io线程的具体实现。MySQL源码版本:5.7.19原文地址:https://mytecdb.com/blogDetail....

2020-03-14 13:15:47 812

原创 MySQL count(*),count(1),count(field)区别、性能差异及优化建议

count函数是用来获取表中满足一定条件的记录数,常见用法有三种,count(*),count(1),count(field),这三种有什么区别?在性能上有何差异?本文将通过测试案例详细介绍和分析。原文地址:mytecdb.com/blogDetail.php?id=81三者有何区别:count(field)不包含字段值为NULL的记录。count(*)包含NULL记录。sele...

2020-03-14 13:13:52 557

转载 MySQL SQL性能分析 Profiling Using Performance Schema

MySQL一直以来提供show profile命令来获取某一条SQL执行过程中的资源使用与耗时情况,这个命令对于分析具体SQL的性能瓶颈有非常大的帮助,但是这个功能在MySQL新的版本里将会被废弃,取而代之的是使用Performance Schema来提供同样的功能。本文将介绍如何使用Performance Schema来实现show profile SQL性能分析的功能。原文地址:htt...

2020-03-02 13:41:09 609

转载 MySQL SQL性能分析 show profile

MySQL show profile 和 show profiles 命令用于展示SQL语句执行过程中的资源使用情况,包括CPU的使用,CPU上下文切换,IO等待,内存使用等,这个命令对于分析某个SQL的性能瓶颈非常有帮助,借助于show profile的输出信息,能让我们知道一个SQL在哪个阶段耗时最长,消耗资源最多,从而为SQL优化,提高SQL性能提供重要的依据。原文地址:https:...

2020-03-02 13:39:23 652

原创 PostgreSQL访问控制,允许&禁止指定IP访问

PostgreSQL中允许哪些IP的机器能够访问数据库是由配置文件pg_hba.conf控制的,通过配置该文件,能够指定哪些ip可以访问,哪些ip不可以访问,以及访问的认证方式。hba是host-based authentication的缩写。原文地址:https://mytecdb.com/blogDetail.php?id=77initdb在初始化数据目录的时候,会生成一个默认的pg...

2020-02-29 20:29:48 5963

原创 MySQL 主从幂等复制slave_exec_mode=IDEMPOTENT

MySQL slave_exec_mode 参数用于控制主从复制数据冲突时的处理策略,可选值有STRICT和IDEMPOTENT,分别代表严格模式和幂等模式,默认值为STRICT,该参数可动态调整。原文地址:https://mytecdb.com/blogDetail.php?id=76STRICT,严格模式IDEMPOTENT,幂等模式默认STRICT模式下,从库复制过程中,发...

2020-02-29 20:28:13 1254

转载 MySQL8.0新特性CTE(Common Table Expression)

CTE(Common Table Expression)可以认为是派生表(derived table)的替代,在一定程度上,CTE简化了复杂的join查询和子查询,提高了SQL的可读性和执行性能。CTE是ANSI SQL 99标准的一部分,在MySQL 8.0.1版本被引入。原文地址:mytecdb.com/blogDetail.php?id=751. CTE优势查询语句的可读性更好...

2020-02-29 14:36:01 406

原创 MySQL高效的逻辑备份工具mydumper & myloader

mydumper是开源的MySQL数据库逻辑备份工具,相比于mysqldump,它能够提供快速、高并发的数据导出与导入功能。帮助文档:http://centminmod.com/mydumper.html下载地址:https://launchpad.net/mydumper安装(CentOS 6.5,mydumper 0.2.3):yum install m

2017-04-18 00:43:27 1714

原创 MySQL数据一致性检查的几个工具

1、MySQL checksum命令在执行checksum命令时,表会被加一个读锁(read lock),checksum table的原理是对表中的数据进行一行一行的较验和计算,因些对于大表,这是一个很耗时的过程。如果对于myisam表,建表时加上CHECKSUM=1选项,那么在对这样的表进行checksum table时将会非常快checksum table tes

2017-03-13 01:09:46 13102

原创 bochs 虚拟磁盘文件移植到vmware,virtual box,virtual PC

bochs 虚拟磁盘文件移植到vmware,virtual box,virtual PC

2014-12-28 21:11:14 1781

原创 Linux内核0.11版 lib/Malloc.c 文件分析

Linux 0.11版 lib/Malloc.c是一个内核内存动态分配模块,实现了内核内存的动态分配与释放。

2014-12-14 13:15:53 1142

原创 CPU 分页机制

对于X86架构的CPU,分页机制是其中一个非常重要的特性。分页机制将内存地址变为虚拟地址,通过页目录,页表转换成物理地址。这为虚拟存储器的实现提供了硬件支持。通常80386中页的大小为4kb,即内存被划分为一个个大小为4kb的页。分页机制开启后,对内存地址的读写都会通过分页机制映射到物理地址上。分页机制是否开启由CR0寄存器的第31位决定。第31位为1表示CPU启用分页,否则禁用分页。

2014-10-21 22:44:18 3020

原创 Orange's:一个操作系统的实现 源码的一处小Bug

最近在学习于渊先生《Orange's:一个操作系统的实现》这本书,源码中有关硬盘驱动程序中的一段代码,似乎有些问题,贴出来与大家分享下。以上是硬盘驱动程序中读写硬盘的一段代码,在while循环中向硬盘读取或写入数据。bytes_left变量记录着需要读写的剩余字节数。while循环中的变量bytes 记录着每次循环处理的字节数,但是在while循环的末尾却是这样两行代码:

2014-09-18 20:54:14 1996

原创 Bochs + GDB 源码级调试C语言内核

Ubuntu 14.04 64bitBochs 2.6.6GDB 7.7想要源码级调试C内核,需要在编译Bochs时加上 --enable-gdb-stub 参数sudo ./configure --enable-all-optimizations --enable-long-phy-address --enable-disasm --enable-alignmen

2014-08-20 08:48:35 3252

原创 FAT32文件系统启动扇区的实现

看了于渊写的《自己动手写操作系统》后,想把启动代码由软盘FAT12文件系统迁移到硬盘FAT32文件系统中,毕竟目前软盘几乎已经不再使用了,而硬盘和U盘是主流。基本想法是在实模式下,使用汇编代码,读取硬盘MBR,分析硬盘分区表,找到第一个FAT32活动分区,分析FAT32分区,在该分区中找到OSLOADER.BIN文件,将该OSLOADER.BIN文件加载到内存指定地址,将执行权交给OSLOADER

2014-08-12 14:54:53 4232 1

原创 Ubuntu 14.04 无线网卡驱动安装

安装了Ubuntu最新版本 14.04 之后,发现无线网卡不能使用,偿试安装驱动后,问题解决。首先确定无线网卡类型:lspci -vnn -d 14e4:比如我的网卡类型为04:00.0 Network controller [0280]:Broadcom Corporation BCM4312 802.11b/g LP-PHY [14e4:4315]根

2014-04-13 23:05:20 12257 4

原创 一种低效但逻辑简单清晰的Delaunay三角网生成算法

由离散样本点生成Delaunay三角网有多种算法,每个算法的执行效率都不一样,这里介绍一种最简单,最低效,但是算法逻辑最清晰的一种。Delaunay三角网必须满足的一个条件是任何一个三角形的外接圆都不能包含其他任何一个样本点,因此,本算法通过枚举所有可能的三角形,再经过其外接圆不包含任何其他样本点的判断,如果满足,则记录该三角形,直到所有三角形枚举完毕。效果图:

2014-02-22 13:55:08 6541 4

原创 Linux环境下编译CLucene

Linux发行版:Ubuntu 12.04CLucene版本:CLucene-core-2.3.3.4.tar.gz1、准备工作:由于CLucene源码由CMake工具来构建,所以先安装CMake工具,在终端中输入如下指令:sudo apt-get install cmake在终端里进入CLucene源码目录,该目录中包含一个文件CMakeList.txt,cmake工

2013-12-29 20:34:31 1357

原创 Linux环境中使用CodeBlocks编译Makefile工程

环境:Ubuntu 12.04,CodeBlocks 10.5-11、打开CodeBlocks开发环境,新建工程,选择 Empty project2、设置工程属性,Project->Properties->Project settings,勾选"This is a custom Makefile",点击OK保存3、设置编译选项,Project->Build options-

2013-12-16 17:06:30 4744 2

空空如也

空空如也

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

TA关注的人

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