自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (7)
  • 收藏
  • 关注

原创 数据库优化原理解析(二):利用Redis原理优化Oracle与MySQL

思路的来源上面讲了一大堆Redis的原理,其实目的就是为了说清楚,Reids为什么快,既然知道了Redis为什么快我们是不是能用相同的思路来优化MySQL和Oracle呢,下面我就来给大家分析一下MySQL完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的。采用单线程,避免了不必要的上下文切换和竞争条件,也不存在...

2018-11-30 16:00:28 416

原创 数据库优化原理解析(一):让我们从Redis谈起

从Redis说起MySQL培训为什么说Redis呢,其实现在主流数据库的核心思路大体都一样,无非就是某一种数据库更侧重于某一方向而已,我从Redis引出要讲的东西。1 Redis有多快Redis采用的是基于内存的采用的是单进程单线程模型的 KV 数据库,由C语言编写,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。![avatar][base64image1]2 Red...

2018-11-28 17:09:03 466

原创 深入理解计算机系统 练习题3.8 理解计算机二元操作

我讲解这道题的目的是为了让大家理解结果为什么是那样的,假如对基础知识不是特别了解的人,可能会对答案有疑问,但是答案并没有详细讲解为什么会得到哪些答案。这里推荐我写的另一篇博客,https://blog.csdn.net/ciqingloveless/article/details/84136002,这里详细讲述了寄存器寻址,后面有的内存我回省略。题目假设下面的值存放在指定的内存地址和寄存器中...

2018-11-22 14:37:21 3607 7

原创 深入理解计算机系统 习题3.4

题目假设变量sp和dp被声明为类型src_t *sp;dest_t *dp;这里src_t和dest_t是用typedef声明的数据类型。我们想使用适当的数据传送指令来实现下面的操作*dp = (dest_t) *sp;假设sp和dp的值分别存储在寄存器%rdi和%rsi中。对于表中的每个表项,给出实现指令数据传送的两条指令。其中第一条指令应该从内存中读数,做适当的转换,并设置寄存器%...

2018-11-21 16:45:22 2964 10

原创 Liunx挂在镜像并修改YUM源

1 挂在本机yum源mount -o loop /mnt/CentOS-6.9-x86_64-bin-DVD1.iso /media/2 修改yum源cd /etc/yum.repos.d/rm -rf *vi CentOS-Base.repo添加如下内容[base]name=CentOS-$releasever - Base#mirrorlist=http://mirror...

2018-11-19 16:06:05 241

原创 3.MySQL优化Optimizing REPAIR TABLE Statements

介绍REPAIR TABLE对于 MyISAM表类似于使用 myisamchk进行修复操作,并且一些相同的性能优化适用:myisamchk具有控制内存分配的变量。您可以通过设置这些变量来提高性能。对于REPAIR TABLE,他与myisamchk的原理相同,但是因为修复是由服务器完成的,所以设置服务器系统变量而不是myisamchk变量。此外,除了设置内存相关参数之外,还可以增加 my...

2018-11-16 14:31:24 159

原创 2.MySQL优化Optimizing MyISAM Queries

介绍以下内容可以提高MyISAM数据插入效率:对于MyISAM引擎的表,你可以在查询的时候使用并发插入,你只要保证在数据文件的中间没有删除的记录。通过一些额外的工作,当表具有许多索引时,可以使表LOAD DATA INFILE更快地 运行 MyISAM。使用以下过程:执行FLUSH TABLES 语句或mysqladmin flush-tables命令。使用myisamchk ...

2018-11-16 14:00:31 380

原创 深入理解计算机系统寄存器寻址讲解

介绍我在网上找过相关材料,感觉讲解都不是很详细,所以我自己写一篇相关文章,为了自己记忆,也为了帮助别人解惑。寄存器寻址有以下几种模式,我按照书上用表格列出来类型格式操作数值名称立即数$ImmImmImmImmImmImm立即数寻址寄存器rar_ara​R[ra]R[r_a]R[ra​]寄存器寻址存储器ImmImmImmM[Imm]M[Imm...

2018-11-16 11:12:16 6973 16

原创 1.MySQL优化Optimizing MyISAM Queries

介绍以下方法可以提高MyISAM引擎的查询效率:为了帮助MySQL更好的优化查询,当一个表加载了数据之后可以使用 ANALYZE TABLE或者myisamchk --analyze分析表。这会更新每个索引部分的值,以指示具有相同值的平均行数,(对于unique indexes,这个是一直是1)MySQL使用它来决定在基于非常量表达式连接两个表时选择哪个索引。可以使用SHOW INDEX ...

2018-11-15 17:32:24 168

原创 9.MySQL优化Optimizing InnoDB Disk IO

介绍如果您遵循SQL操作的数据库设计和调优技术的最佳实践,但由于磁盘I/O活动繁重,您的数据库仍然很慢,请考虑这些磁盘I/O优化。如果Unix top工具或Windows任务管理器显示您的工作负载的CPU使用率百分比低于70%,则您的工作负载可能是磁盘造成的。增大buffer pool size当表的数据被缓冲到InnoDB的buffer pool中时,可以在查询中重复访问这些数据而不用...

2018-11-15 16:36:21 210

原创 8.MySQL优化Optimizing InnoDB DDL Operations

介绍很多的表与索引的DDL操作(CREATE, ALTER, and DROP statements),可以在线操作。在线DDL支持添加二级索引意味着您通常可以通过创建没有二级索引的表来加速创建和加载表及相关索引的过程,然后在加载数据后添加二级索引。使用 TRUNCATE TABLE 来清空表,不要使用 DELETE 。外键约束可以使TRUNCATE语句像常规DELETE语句一样工作,在这...

2018-11-15 15:00:25 138

原创 7.MySQL优化Optimizing InnoDB Queries

介绍要调整InnoDB表的查询,请在每个表上创建一组适当的索引。请遵循以下InnoDB索引指南:因为每一张表都需要一个主键(无论你是不是想要),为每个表指定一组主键列,在某些查询中使用主键可以极大提高查询效率。不要使用过多的列组合或者过长的列当主键,因为主键会被引入到二级索引中。当二级索引包含不必要的数据时,读取此数据的I/O和用于缓存它的内存会降低服务器的性能和可伸缩性。不要为每列创建...

2018-11-15 14:37:58 126

原创 6.MySQL优化Bulk Data Loading for InnoDB Tables

介绍优化InnoDB的方法:导入数据时InnoDB,请关闭自动提交模式,因为它会为每个插入执行磁盘日志刷新。要在导入操作期间禁用自动提交,请使用SET autocommit和 COMMIT语句将其 括起来: SET autocommit=0; ... SQL import statements ... COMMIT;mysqldump的–opt参数创建一个dump文件可以快...

2018-11-15 14:10:38 140

原创 5.MySQL优化Optimizing InnoDB Redo Logging

#介绍优化InnoDB Redo Logging可以考虑以下方法:确保Redo Logging足够大,最好与buffer pool一样大。当InnoDB将redo log文件写满之后,他必须将buffer pool的数据修改写入到磁盘的 checkpoint中。过小的redo log可能会产生很多不必要的磁盘写入,虽然在以前的版本中大的redo log可能会导致恢复时间变得很长,但现在已经...

2018-11-15 11:35:03 392

原创 4.MySQL优化Optimizing InnoDB Read-Only Transactions

介绍InnoDB可以避免为已知只读事务设置事务ID的开销(TRX_ID)。只有可能执行写操作或锁定读取的事务(例如SELECT … FOR UPDATE)才需要事务ID。消除不必要的事务ID会减少每次查询或数据更改语句构造读取视图时所咨询的内部数据结构的大小。InnoDB 在以下情况下检测只读事务:这个事务以START TRANSACTION READ ONLY 语句开始。在这种情况下,...

2018-11-15 10:57:09 511 2

原创 3.MySQL优化Optimizing InnoDB Transaction Management

介绍想要优化InnoDB的事务处理,需要在事务功能的性能开销和服务器的工作负载之间找到平衡。举个例子,一个应用每秒提交上千次或者一个应用2-3小时提交一次,这样都会遇到性能问题。默认的MySQL设置AUTOCOMMIT=1可能对插入繁忙的数据造成性能瓶颈。在可行的情况下,通过SET AUTOCOMMIT=0或START TRANSACTION等指令,将相关的SQL放到同一事务中进行批量处理...

2018-11-14 17:02:15 160

原创 2.MySQl优化Optimizing Storage Layout for InnoDB Tables

介绍一旦数据达到稳定大小,或者一张表增加了几十或几百兆字节,请考虑使用该OPTIMIZE TABLE语句重新组织表并压缩任何浪费的空间。重组表可以较少全表扫描的磁盘I/O操作。这个技术可以在其他方式无法优化时提高性能。OPTIMIZE TABLE复制表数据并且重建索引,重建索引可以优化索引结构,减少表空间和磁盘碎片。这个优化效果取决于表的数据量。这个优化可能根据不同的数据库产生不同的效果,...

2018-11-14 16:25:43 131

原创 1.MySQL优化Optimizing for InnoDB Tables

介绍Optimizing Storage Layout for InnoDB TablesOptimizing InnoDB Transaction ManagementOptimizing InnoDB Read-Only TransactionsOptimizing InnoDB Redo LoggingBulk Data Loading for InnoDB TablesOpt...

2018-11-14 10:57:38 161

原创 24.MySQL优化Avoiding Full Table Scans

介绍当使用全表扫描时EXPLAIN 的type字段输出ALL。通常以下情况可能趋向于全表扫描:表很小,全表扫秒比使用索引扫描更快,这对于行少于10行且行长度较短的表来说很常见。当ON或者WHERE条件中没有索引可以使用的条件时。将索引与常量值进行了比较,并且索引通过计算发现,这个常量值覆盖了整个表的大部分,通过全表扫描比索引扫描更快。使用的列的区分度较低(很多行匹配了键值),然后查询索...

2018-11-13 17:22:47 366

原创 23.MySQL优化Row Constructor Expression Optimization

介绍行构造函数允许同时比较多个值。举例来说,这两个语句在语义上是等价的:SELECT * FROM t1 WHERE (column1,column2) = (1,1);SELECT * FROM t1 WHERE column1 = 1 AND column2 = 1;同时,优化器采用相同的方式处理两个SQL语句。如果行构造函数列未覆盖索引的前缀,则优化程序不太可能使用可用索引。思考...

2018-11-13 13:35:11 315

原创 22.MySQL优化Window Function Optimization

介绍窗口函数会影响优化程序考虑的策略:假如一个子查询具有窗口函数则关闭Derived table(派生表),子查询始终使用materialized。举例如下: EXPLAIN SELECT * FROM (SELECT * FROM city WHERE population > 10*1000) AS big_city WHERE big_city.cou...

2018-11-12 19:59:15 345

原创 21.MySQL优化Function Call Optimization

介绍MySQL内部标记为确定性的和非确定性的。如果函数式不确定性的,非确定性函数的定义是对于固定的输入,返回不固定的返回值,例如RAND(), UUID().假如一个函数被标记为不确定的,WHERE则会为每一行(从一个表中选择时)或行组合(从多表连接中选择时)评估子句中对它的引用。MySQL中的确定性函数的定义是,对于一个固定的参数,总会返回一个固定的返回值。一个确定性函数使用表的列作为参数...

2018-11-12 16:29:36 164

原创 20.MySQL优化LIMIT Query Optimization

介绍如果只需要结果集中指定数量的行,请LIMIT在查询中使用子句,而不是获取整个结果集并丢弃额外数据。MySQL可以优化包含 LIMIT row_count 但没有HAVING的查询假如使用LIMIT扫描少数行,MySQL在某些情况下使用索引,通常情况下它更喜欢进行全表扫描。假如LIMIT与ORDER BY进行组合,MySQL会在找到排序结果的第一行后立即停止排序 ,而不是对整个结果进行...

2018-11-12 15:33:13 151

原创 20.MySQL优化LIMIT Query Optimization

介绍如果只需要结果集中指定数量的行,请LIMIT在查询中使用子句,而不是获取整个结果集并丢弃额外数据。MySQL可以优化包含 LIMIT row_count 但没有HAVING的查询假如使用LIMIT扫描少数行,MySQL在某些情况下使用索引,通常情况下它更喜欢进行全表扫描。假如LIMIT与ORDER BY进行组合,MySQL会在找到排序结果的第一行后立即停止排序 ,而不是对整个结果进行...

2018-11-12 15:27:08 340

原创 19.MySQL优化DISTINCT Optimization

= 介绍最常用的优化 GROUP BY 的方式就是扫描整张表然后创建临时表在临时表中保证所有数据分成不同的组,每个组里的数据都是连续的,然后利用临时表来发现组并应用聚合函数(假如有的话)。在某些情况下,MySQL可以做的更好,它可以使用索引避免使用临时表。使用索引优化GROUP BY的一个非常重要的先决条件是,GROUP BY中引用的属性需要在同一个索引中,并且索引是有序的(举个例子,可以使用...

2018-11-12 11:20:17 211

原创 18.MySQL优化GROUP BY Optimization

介绍最常用的优化 GROUP BY 的方式就是扫描整张表然后创建临时表在临时表中保证所有数据分成不同的组,每个组里的数据都是连续的,然后利用临时表来发现组并应用聚合函数(假如有的话)。在某些情况下,MySQL可以做的更好,它可以使用索引避免使用临时表。使用索引优化GROUP BY的一个非常重要的先决条件是,GROUP BY中引用的属性需要在同一个索引中,并且索引是有序的(举个例子,可以使用Bt...

2018-11-12 10:59:45 131

原创 17.MySQL优化ORDER BY 优化

介绍本节描述MySQL何时可以使用索引来满足ORDER BY子句,无法使用索引时使用的filesort操作,和优化器提供的有关ORDER BY的执行计划信息。一个ORDER BY有和没有 LIMIT可能以不同的顺序返回行:使用索引来优化ORDER BY使用filesort来优化ORDER BY影响ORDER BY优化可用的执行计划信息收集使用索引来优化ORDER BY在某些情况...

2018-11-08 19:07:01 298

原创 16.MySQL优化IS NULL

介绍MySQL可以执行相同的优化col_name IS NULL和col_name = constant_value。例如,MySQL可以使用索引扫描和索引范围扫描查询NULL值, col_name IS NULL。SELECT * FROM tbl_name WHERE key_col IS NULL;SELECT * FROM tbl_name WHERE key_col <=&...

2018-11-08 10:35:02 1235

原创 15.MySQL优化Condition Filtering

介绍在连接处理中,前缀行是从连接中的一个表传递到下一个表的那些行。通常,优化器尝试在连接顺序的早期放置具有低前缀计数的表,以保持行组合的数量不会快速增加。在某种程度上,优化器可以利用一些条件信息查询表中需要的行传递给下一个,它可以更准确地计算行估计并选择最佳执行计划。假如没有条件过滤,表的前缀行数是基于各种优化器的访问方法根据Where条件进行的估量估计。Condition filtering...

2018-11-07 15:23:16 487 2

原创 14.MySQL优化Block Nested-Loop and Batched Key Access Joins

介绍在MySQL中,Batched Key Access (BKA) Join algorithm该算法用于对联接表和连接缓冲区的索引访问。BKA算法支持内连接,外连接和半连接操作,包括嵌套外连接。BKA的优点包括由于更高效的表扫描而提高了连接性能。此外,先前仅用于内连接的块嵌套循环(BNL)连接算法已扩展,可用于外连接和半连接操作,包括嵌套外连接。以下部分讨论了连接缓冲区管理,它是原始BNL...

2018-11-07 10:29:57 299

原创 13.MySQL优化Multi-Range Read Optimization

介绍在二级索引上使用范围扫描读取行可能会导致在表很大并且未存储在存储引擎的缓存中时对基表进行许多随机磁盘访问。通过磁盘扫描多范围读取(MRR)优化,MySQL尝试通过首先扫描索引并收集相关行的密钥来减少范围扫描的随机磁盘访问次数。然后对键进行排序,最后使用主键的顺序从基表中检索行。磁盘扫描MRR的动机是减少随机磁盘访问的次数,而是实现对基表数据的顺序扫描。多范围读取优化提供以下好处:MRR...

2018-11-06 14:58:12 265

原创 12.MySQL优化Outer Join Simplification讲解

介绍在许多情况下,简化了查询的FROM子句中的表的表达式。在解析器阶段,具有右外连接操作的查询将转换为仅包含左连接操作的等效查询。在一般情况下,转换是这样执行的:(T1, ...) RIGHT JOIN (T2, ...) ON P(T1, ..., T2, ...)等价的left join为:(T2, ...) LEFT JOIN (T1, ...) ON P(T1, ..., T...

2018-11-05 17:11:25 197

原创 11.MySQL优化Outer Join Optimization

介绍Outer joins包含LEFT JOIN和RIGHT JOIN.MySQL实现了一个A LEFT JOIN B join_condition,如下所示:表B设置为依赖于表A和A所依赖的所有表。表A设置为依赖于LEFT JOIN条件中使用的所有表(B除外)。LEFT JOIN条件用于决定如何从表B中检索行。(换句话说,不使用WHERE子句中的任何条件。)执行所有标准连接优化,但...

2018-11-02 15:18:13 233

原创 10.MySQL优化Nested Join Optimization

介绍table_factor是对SQL标准的一个扩展。后者只接受table_reference,而不能接受一对括号内的列表。SELECT * FROM t1 LEFT JOIN (t2, t3, t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)等价于SELECT * FROM t1 LEFT JOIN (t2 ...

2018-11-01 19:50:31 195

kettle-sdk-clickhouse-9.3.0.0-114.zip

kettle 9.3 连接clickhouse插件

2021-07-29

backuppc-xs-0.59.tar.gz

这个下载地址不好找,我上传一下。 BackupPC是用于将Linux,WinXX和MacOS PC和笔记本电脑备份到服务器磁盘的高性能企业级系统。BackupPC是高度可配置的,易于安装和维护。 鉴于磁盘和RAID系统的成本不断降低,将大量计算机备份到服务器的本地磁盘或网络存储上现在是实用且具有成本效益的。这是BackupPC所做的。对于某些站点,这可能是完整的备份解决方案。对于其他站点,可以通过定期备份服务器到磁带来创建额外的永久存档。各种开源系统可用于备份磁带。 BackupPC以Perl编写,并通过SMB(使用Samba),rsync或tar通过ssh / rsh / nfs提取备份数据。它是可靠的,可靠的,有据可查的和免费的,作为开源的GitHub。

2020-05-06

MySQL官方文档优化原则部分

MySQL官方文档翻译,包括一些执行计划的用法,Order By优化等等

2018-12-25

MySQL8 官方文档翻译

MySQL官方文档翻译InnoDB部分内容,有兴趣的可以下载观看

2018-12-25

Oracle 11G RAC超详细带截图安装文档

里面有超详细的安装过程,截图系统配置系统安装,完成自己手动写成有问题可以在博客提问,每天回复

2018-11-02

MySQL 8 Cookbook Kindle正版

MySQL 8 Cookbook_ Over 150 recipes for high-performance database querying and administration

2018-09-25

kubernetes1.11.0安装文档(填坑直男)

kubernetes1.11.0一步一步的安装过程,网上有不少坑,我基本全填上了

2018-09-03

空空如也

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

TA关注的人

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