自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(387)
  • 资源 (17)
  • 收藏
  • 关注

原创 elasticsearch亿级数据性能调优实战指南

文章目录慢查询日志es优化黄金原则1、搜索结果不要返回过大的结果集2、避免超大的document3、避免稀疏的数据(1)避免将没有任何关联性的数据写入同一个索引(2)对document的结构进行规范化/标准化(3)避免使用多个types存储不一样结构的document(4)对稀疏的field禁用norms和doc_values写入性能优化1、用bulk批量写入2、使用多线程将数据写入es3、增加r......

2019-10-14 22:34:32 291023

原创 elasticsearch的底层模块深入解析

文章目录shard分配相关的配置及原理1、shard allocation的介绍2、cluster level shard allocation(1)shard allocation settings(2)shard rebalance settings(3)shard balance heuristics3、disk-based shard allocation4、shard allocatio...

2019-10-14 18:12:56 633

原创 生产环境Elasticsearch索引管理篇

索引创建修改删除压缩及滚动创建1、创建索引(1)创建索引的语法用settings给这个索引在创建时可以添加一些设置,还有可以初始化一些type的mappingcurl -XPUT 'http://elasticsearch02:9200/twitter?pretty' -d '{ "settings" : { "index" : { "nu...

2019-10-14 17:30:33 511

原创 Promise执行流程分析

先上代码console.log(1);new Promise(function (resolve, reject){ reject(true); window.setTimeout(function (){ resolve(false); }, 0);}).then(function(){ console.log(2);}, function...

2019-01-17 10:06:39 1997

原创 php的生命周期

图解php的生命周期

2018-09-05 21:47:11 351

原创 linux conf配置文件(全)

用户账号相关etcprofilebash_profileetcbashrcbashrcbash_logout用户环境配置 bash_profilebashrc和bash_logoutetcgshadow网络配置修改IP地址等网络相关的配置文件 etcsysconfignetwork-scriptsifcfg-ethetcsysconfignetwork 网关配置相关的配置文件e

2017-09-22 15:52:22 22753

原创 用户访问网站基本流程及原理(史上最全,没有之一)

[TOC]  用户访问网站流程框架第一步:客户端用户从浏览器输入www.baidu.com网站网址后回车,系统会查询本地hosts文件及DNS缓存信息,查找是否存在网址对应的IP解析记录。如果有就直接获取到IP地址,然后访问网站,一般第一次请求时,DNS缓存是没有解析记录的;第二步:如果客户端没有DNS缓存或hosts没有对应www.baidu.com网站网址的域名解析记录,那么,系统会把浏览器的

2017-06-04 10:38:28 35866 11

原创 MySQL性能调优:从入门到精通,让你的数据库飞起来!

MySQL性能调优是一个涉及多方面的过程,包括了解MySQL体系结构、选择合适的存储引擎、设置合理的参数、索引优化、查询优化以及其他优化手段等。通过全面地了解和掌握这些知识点,可以帮助你的MySQL数据库性能得到大幅度的提升,让你的数据库飞起来!最后需要注意的是,性能调优并非一成不变的,需要根据实际业务场景和需求进行调整。在进行调优时,要关注具体的性能指标,遵循优化原则,同时要注意权衡各方面的利弊,以达到最佳的效果。

2024-05-17 12:29:32 13

原创 Docker Desktop配置国内镜像源

Docker Desktop配置国内镜像源。

2024-04-30 16:39:52 78 2

原创 match_phrase查不到?match_phrase查询规则详解

"title":{"fields":{},},这里,为了验证分词,同时使用了ik_smart和ik_max两种分词。实际开发中不需要,因为:两种分词共存,会导致导入数据创建索引的时候,索引会非常大,对磁盘和检索性能都会有影响。

2024-04-11 14:52:19 53

原创 【无标题】

各列长度不超过 767 字节 ,如果有超过 767 bytes 的,则给出报警,索引最后创建成功,但是对于超过 767 字节的列取前缀索引,与索引列顺序无关,总和不得超过 3072 ,否则失败,无法创建。开启 innodb_large_prefix 可以使单索引的长度限制达到 3072 字节(但是联合索引总长度限制还是 3072 字节),禁用时单索引的长度限制为 767 字节。了解完存储引擎和不同MySQL版本对索引长度的限制,我们以InnoDB引擎为例,看MySQL不同的字符集对索引长度有啥影响。

2024-04-07 17:33:08 57

原创 消除 Git diff 中的换行符差异(Linux)

通常编辑器默认使用的换行符是跟随操作系统的,而windows操作系统上修改的代码,其换行符会被转成win的\r\n,在提交代码时会显示大量改动(对于sh脚本还会存在无法执行的问题),这时候我们可以通过设置git自动转成unix格式的换行符,

2024-03-21 10:03:20 160

原创 innoDB page页结构详解

Page分为几种类型,常见的页类型有数据页(B+tree Node)Undo页(Undo Log Page)系统页(System Page) 事务数据页(Transaction System Page)等。页的主要作用是存储记录,所以“最小和最大记录”和“用户记录”部分占了页结构的主要空间。另外空闲空间是个灵活的部分,当有新的记录插入时,会从空闲空间中进行分配用于存储新记录。通用部分 : 主要指文件头和文件尾,将页的内容进行封装,通过文件头和文件尾校验的CheckSum方式来确保页的传输是完整的。

2024-02-18 22:22:57 164 1

原创 MySQL为什么改进LRU算法?

改进型LRU:将链表分为new和old两个部分,加入元素时并不是从表头插入,而是从中间midpoint位置插入(就是说从磁盘中新读出的数据会放在冷数据区的头部),如果数据很快被访问,那么page就会向new列表头部移动,如果数据没有被访问,会逐步向old尾部移动,等待淘汰。LRU = Least Recently Used(最近最少使用): 就是末尾淘汰法,新数据从链表头部加入,释放空间时从末尾淘汰.冷数据区的数据页什么时候会被转到到热数据区呢?

2024-02-18 22:20:47 207

原创 innodb的意向锁有什么作用?

同样,只要表中数据行被加上了共享锁,就给这个表加上一个意向共享锁,用来标识这个表中已经有数据行持有共享锁了。所以意向锁的本质是一种标识锁,所以意向锁之间不管是共享锁还是互斥锁都是不存在互斥关系的,也就是说意向锁之间不会互相阻塞。注意:申请意向锁的动作是数据库完成的,就是说,事务A申请一行的行锁的时候,数据库会自动先开始申请表的意向锁,不需要我们程序员使用代码来申请。如果仅仅锁定一行仅仅需要加一个锁,那么就直接加锁就好了,这里要表明加锁意图的原因是因为要锁定一行不仅仅是要加一个锁,而是要做一系列操作吗?

2024-02-06 15:53:02 105

原创 mysql的锁机制详解

*锁是计算机协调多个进程或线程并发访问某一资源的机制。**在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。相对其他数据库而言,MySQL的锁机制比较简单,其最 显著的特点是不同的存储引擎支持不同的锁机制。

2024-02-06 12:33:32 198

原创 mysql死锁详解

上述,事务抛出1213这个出错提示,即发生了死锁,上例中当两个事务都执行了第一条UPDATE语句,更新了一行数据,同时也锁定了该行数据,接着每个事务都尝试去执行第二条UPDATE语句,却发现该行已经被对方锁定,然后两个事务都等待对方释放锁,同时又持有对方需要的锁,则陷入死循环。如果InnoDB监视器输出的最新检测到的死锁部分包含一条消息,“在锁表等待图中搜索太深或太长,我们将在事务之后回滚”,这表明等待列表中的事务数量已经达到了200的上限。这样,查询需要扫描的索引记录就更少,因此设置的锁就更少。

2024-02-06 12:32:20 193

原创 mysql事务锁

lock对象是事务,用来锁定的是数据库中的对象,如表、行、页。并且一般lock的对象仅在事务commit或rollback后进行释放(不同事务隔离级别释放的时间可能不同)。此外,lock,正如在大多数数据库中一样,是有死锁机制的。

2024-02-06 12:25:25 104

原创 mysql线程锁(latch)源码级详解

latch是闩锁,一种轻量级锁。要求锁定的时间必须非常短。若时间长,则性能非常差。其目的是为了保证并发线程操作临界资源的正确性。通常没有死锁检测通常指的是server层、innodb层的互斥锁和读写锁。

2024-02-06 12:21:07 260

原创 MYSQL performance schema详解

MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数。并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。MySQL5.5默认是关闭的,需要手动开启。从MySQL5.6开始,默认打开,本文就从MySQL5.6来说明,在数据库使用当中PERFORMANCE_SCHEMA的一些比较常用的功能。具体的信息可以查看官方文档。

2024-02-05 18:20:17 686

原创 MYSQL中NULL值字段为什么会影响查询优化器的统计信息?

对于InnoDB和MyISAM 表,分别可以通过innodb_stats_method和 myisam_stats_method系统变量来控制对表统计信息的收集。因此,如果您使用一种方法收集统计数据,但系统变量被设置为另一种方法时,表的统计数据自动收集后,将使用系统变量设置的那个方法。2、nulls_unequal中,使用的是 = ,判断 NULL = NULL 时,结果为0,故每个NULL值都不一样。1、nulls_equal中,使用的是 安全等,所以他会把所有的NULL值都统计在一起。

2024-02-05 18:15:16 318

原创 mysql是如何使用索引的?

摘自官网。

2024-02-05 18:09:58 200

原创 详解MYSQL中的平均值组大小

然而,前缀长度为索引规范CREATE TABLE,ALTER TABLE和CREATE INDEX语句解释为非二进制串类型的字符数(CHAR, VARCHAR, TEXT对于二进制串类型),并且字节数(BINARY, VARBINARY, BLOB)。平均值组的大小与表基数有关,表基数是值组的数目。sex的选择性低于province的选择性,所以当MySQL要走sex这个索引时,他需要扫描更多的行,所需要的成本越高。随着索引的平均值组大小的增加,该索引在这两个用途中的作用不大,因为每次查找的平均行数增加。

2024-02-05 18:07:12 270

原创 聚簇索引的效率明显要低于非聚簇索引,为什么还需要聚簇索引?

因为MyISAM的主索引并非聚簇索引,那么他的数据的物理地址必然是凌乱的,拿到这些物理地址,按照合适的算法进行I/O读取,于是开始不停的寻道不停的旋转。不过,如果涉及到大数据量的排序、全表扫描、count之类的操作的话,还是MyISAM占优势些,因为索引所占空间小,这些操作是需要在内存中完成的。key(索引值)和对应的数据,都会在一次IO操作中被读取到缓存中,所以在访问同一个页中的不同记录时,会在内存里操作,而不用再次进行IO操作了。辅助索引的叶子节点,存储主键值,而不是数据的存放地址。

2024-02-05 18:04:25 216

原创 复合索引(多列索引)的规则实例详解

这里虽然使用了name索引列,但是索引的type是index,也就说明这个查询走了索引列的全表扫描。也就是必须从last_name字段开始才能走索引,因为last_name字段是多列索引中的第一个字段,而B+tree的查找是从索引值的开头位置进行查找的.该索引可用于查询中的查找,这些查询指定在已知范围内的last_name、first_name和customize_name值组合的值。这里虽然使用了name索引列,但是索引的type是index,也就说明这个查询走了索引列的全表扫描。

2024-02-05 16:46:33 445

原创 HASH索引的规则

假设f()函数,可以对fname进行哈希计算,对于一个 SELECT 来说。

2024-02-05 15:52:39 72

原创 不得不知的11个Redis 5.0的新特性

相较于Redis 4.0, Redis 5.0增加了很多新的特性,限于篇幅,本节主要介绍几个较重要的特性,具体内容可以参考官方文档。

2024-02-04 16:53:27 136

原创 mysql Change buffer详解

MySQL的Change buffer是一种用来优化更新操作的机制。当对数据库进行更新操作时,MySQL会先将更新操作记录到Change buffer中,然后再将更新操作应用到实际的数据页中。Change buffer的原理如下:当需要更新某个数据页时,MySQL首先会检查该数据页是否在内存中。如果数据页在内存中,直接在内存中进行更新操作;如果不在内存中,MySQL会将该数据页加载到内存中,然后在内存中进行更新操作。在进行更新操作时,MySQL会将更新操作记录到Change buffer中。

2024-02-03 23:41:48 241

原创 彻底搞懂字符集与字符编码

|很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。

2024-01-15 17:53:08 926

原创 彻底搞懂MYSQL中CHAR与VARCHAR的区别

该参数用来设置默认的row_format,默认值为dynamic。具体来说,如果字符串占用的字节数在 0 ~255 之间,需1个字节来表示,如果大于 255 个字节,则需2个字节来表示。在 MySQL 5.7 中,innodb_file_format默认为Barracuda,创建表时,如果没有显式指定row_format,则默认为Dynamic。在 MySQL 5.6 中,innodb_file_format默认为Antelope,创建表时,如果没有显式指定row_format,则默认为Compact。

2024-01-09 17:04:17 932

原创 Ubuntun构建本地源详细教程

首先使用一台已连接互联网的同版本ubuntu主机添加国内镜像源。

2024-01-06 09:34:18 537

原创 win11家庭版开启hyper-v

然后系统自动进行Windows命令处理,我们等待处理完成以后,在最末处输入:Y,电脑自动重启,进行配置更新,重启后可以在“打开或关闭windows功能”里看到已经Hyper-V已经安装并打上勾了,重启即可使用。然后弹出一个 用户帐户控制 - Windows命令处理程序 对话框,我们点击:是。windows11家版没有hyper-v,只有专业版才有,需要手动开启。右键菜单中以管理员身份运行hyper.cmd。

2024-01-05 17:56:28 1190 5

原创 win11家庭版开启远程桌面功能

即可,如果大家不放心,可用杀软进行查杀。用谷歌浏览器会提示危险文件,选择。win11家庭版不支持远程桌面。进行安装,安装成功则如下提示。进入控制面板界面,然后选择。,最后确保远程协助已允许;

2024-01-05 17:49:44 1467

原创 win11家庭版开启(增加)组策略

右键以管理员运行gpedit.bat,在弹出的终端中按照提示输入Y即可安装,安装完成后重启即可。win11家庭版默认是没有组策略管理器的,需要手动开启。

2024-01-05 17:36:50 450

原创 MYSQL8.0+配置远程登录

本地和远程服务器的防火墙设置(telnet 3306可以通)首先确保MYSQL绑定了远程可以访问的ip。

2024-01-05 17:28:00 422

原创 Ubuntun使用ISO镜像中的软件包作为本地镜像源

sudo apt update 就可以看到镜像文件中的软件包了。新建本地目录,挂载ISO文件到本地目录。

2024-01-05 16:51:27 863

原创 解决git自动转换行符的问题,warning: in the working copy of ‘path/file‘, LF will be replaced by CRLF

【代码】解决git自动转换行符的问题,warning: in the working copy of 'path/file', LF will be replaced by CRLF。

2024-01-04 18:09:48 463

原创 不停止业务的情况下优化 Elasticsearch Reindex

在使用 Elasticsearch 时,我们总有需要修改索引映射的时候,这时我们只能进行 _reindex。事实上,这是一个相当昂贵的操作,因为根据数据量和分片数量,完整复制一个索引可能需要几个小时。花费的时间不是大问题,但更严重的是,它会影响生产环境的性能甚至功能。相信大家都明白,数据迁移会消耗大量硬盘资源,肯定会影响性能,但功能呢?让我们以常规的 _reindex 为例。假设我们在索引上创建了一个别名。如果没有别名,我们就有大麻烦了。常规的reindex程序分为两个步骤。

2023-12-28 14:52:32 1160

原创 elasticsearch-py 8.x的一些优势

​早在 2022 年 2 月,当 Elasticsearch 8.0 发布时,Python 客户端也发布了 8.0 版本。它是对 7.x 客户端的部分重写,并带有许多不错的功能(如下所述),但也带有弃用警告和重大更改。今天,客户端的 7.17 版本仍然相对流行,每月下载量超过 100 万次,占 8.x 下载量的 ~50%。​根据我作为 urllib3 维护者的经验,我知道投资 urllib3 2.0 迁移指南 1 并帮助用户迁移是有回报的。

2023-12-22 14:16:29 9125

原创 Go 官方发布了 Go 1.20.3 和 Go 1.19.8

mime/multipart.Reader.ReadForm 限制了解析的多部分表单可以消耗的总内存。这会影响使用 mime/multipart.Reader.ReadForm 的程序,以及在 net/http 包中使用请求方法 FormFile、FormValue、ParseMultipartForm 和 PostFormValue 进行的表单解析。输入数据的某些异常模式可能会导致用于解析 HTTP 和 MIME 标头的通用函数分配比保存已解析标头所需的内存更多的内存。

2023-12-21 17:57:33 8823

win11家庭版开启远程桌面功能

用于开启windows11家庭版远程桌面

2024-02-22

win11家庭版开启远程桌面功能

win11家庭版开启远程桌面功能

2024-01-05

汉语词典中全部字词--通过逗号分割

汉语词典中全部字词,通过逗号分割,方便程序直接读取

2022-04-03

accounts.json

深入学习Ealsticsearch课程所用索引数据包

2021-12-08

Elasticsearch技术解析与实战(朱林)

朱林著的这本Elasticsearch技术解析与实战,非常适合需要引入es作为搜索引擎的开发者,书中从原理到实践,一步步深入,让开发者全面掌握es这门近实时的搜索技术

2018-12-21

kafka源码剖析

业界大牛带你看kafka源码,图文解析kafka生产和消费模型,快速深入掌握kafka核心知识

2018-12-19

图解TCPIP(第5版)

网络协议对每个开发者而言至关重要,图解tcp/ip经典中的经典,通俗易懂,对新手非常友好.

2018-09-01

使用SpringCloud和Docker实战微服务

使用SpringCloud和Docker实战微服务,实战讲解,干货满满

2018-08-30

高性能Linux服务器构建实战:运维监控、性能调优与集群应用

从系统到服务再到原理,高级运维必修课,书中几乎没有一句废话,干货满满

2018-08-30

Redis设计与实现 完整版 黄健宏

非常值得一看的书,深度剖析redis数据结构,看完后受益匪浅

2018-08-30

Mysql技术内幕InnoDB存储引擎

深度讲解了innodb架构,让你知道怎么调优mysql,配置参数的含义,精通innodb的使用

2018-08-30

图解HTTP彩色完整版 带书签

熟悉http协议是每个开发人员必备的技能本书通过图片形象的剖析http的基础知识及网络安全

2018-08-30

勇哥带你玩转git基本操作

git是当下最受欢迎的版本控制器没有之一,不管是gitHub还是码云还是CSDN的code,都为广大开发者带来了极大的便利,下面就让老司机带你玩转git基本操作

2017-04-19

阿里超大规模Docker化之路

阿里顶尖工程师带你玩转Docker

2017-04-19

Hadoop存储与计算分离实践

2017-04-19

史上最全vim配置带插件包,耗时一周打造,覆盖插件文件夹即可使用

支持shell语法,python,c,html,css等的自动补全提示,支持自动生成通用的文件模板,支持显示文件列表(一般模式下按wm开启)支持显示方法列表.可跳转

2017-04-13

HTML5 在游戏开发中的应用

实战讲解HTML5在游戏开发中的应用,吐血推荐

2016-08-24

择业规划与创业形势之我见

就业指导结课作业范本

2016-08-24

空空如也

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

TA关注的人

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