- 博客(383)
- 资源 (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 290991
原创 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 595
原创 生产环境Elasticsearch索引管理篇
索引创建修改删除压缩及滚动创建1、创建索引(1)创建索引的语法用settings给这个索引在创建时可以添加一些设置,还有可以初始化一些type的mappingcurl -XPUT 'http://elasticsearch02:9200/twitter?pretty' -d '{ "settings" : { "index" : { "nu...
2019-10-14 17:30:33 491
原创 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 1969
原创 linux conf配置文件(全)
用户账号相关etcprofilebash_profileetcbashrcbashrcbash_logout用户环境配置 bash_profilebashrc和bash_logoutetcgshadow网络配置修改IP地址等网络相关的配置文件 etcsysconfignetwork-scriptsifcfg-ethetcsysconfignetwork 网关配置相关的配置文件e
2017-09-22 15:52:22 22013
原创 用户访问网站基本流程及原理(史上最全,没有之一)
[TOC] 用户访问网站流程框架第一步:客户端用户从浏览器输入www.baidu.com网站网址后回车,系统会查询本地hosts文件及DNS缓存信息,查找是否存在网址对应的IP解析记录。如果有就直接获取到IP地址,然后访问网站,一般第一次请求时,DNS缓存是没有解析记录的;第二步:如果客户端没有DNS缓存或hosts没有对应www.baidu.com网站网址的域名解析记录,那么,系统会把浏览器的
2017-06-04 10:38:28 35589 11
原创 消除 Git diff 中的换行符差异(Linux)
通常编辑器默认使用的换行符是跟随操作系统的,而windows操作系统上修改的代码,其换行符会被转成win的\r\n,在提交代码时会显示大量改动(对于sh脚本还会存在无法执行的问题),这时候我们可以通过设置git自动转成unix格式的换行符,
2024-03-21 10:03:20 61
原创 innoDB page页结构详解
Page分为几种类型,常见的页类型有数据页(B+tree Node)Undo页(Undo Log Page)系统页(System Page) 事务数据页(Transaction System Page)等。页的主要作用是存储记录,所以“最小和最大记录”和“用户记录”部分占了页结构的主要空间。另外空闲空间是个灵活的部分,当有新的记录插入时,会从空闲空间中进行分配用于存储新记录。通用部分 : 主要指文件头和文件尾,将页的内容进行封装,通过文件头和文件尾校验的CheckSum方式来确保页的传输是完整的。
2024-02-18 22:22:57 100 1
原创 MySQL为什么改进LRU算法?
改进型LRU:将链表分为new和old两个部分,加入元素时并不是从表头插入,而是从中间midpoint位置插入(就是说从磁盘中新读出的数据会放在冷数据区的头部),如果数据很快被访问,那么page就会向new列表头部移动,如果数据没有被访问,会逐步向old尾部移动,等待淘汰。LRU = Least Recently Used(最近最少使用): 就是末尾淘汰法,新数据从链表头部加入,释放空间时从末尾淘汰.冷数据区的数据页什么时候会被转到到热数据区呢?
2024-02-18 22:20:47 154
原创 innodb的意向锁有什么作用?
同样,只要表中数据行被加上了共享锁,就给这个表加上一个意向共享锁,用来标识这个表中已经有数据行持有共享锁了。所以意向锁的本质是一种标识锁,所以意向锁之间不管是共享锁还是互斥锁都是不存在互斥关系的,也就是说意向锁之间不会互相阻塞。注意:申请意向锁的动作是数据库完成的,就是说,事务A申请一行的行锁的时候,数据库会自动先开始申请表的意向锁,不需要我们程序员使用代码来申请。如果仅仅锁定一行仅仅需要加一个锁,那么就直接加锁就好了,这里要表明加锁意图的原因是因为要锁定一行不仅仅是要加一个锁,而是要做一系列操作吗?
2024-02-06 15:53:02 50
原创 mysql的锁机制详解
*锁是计算机协调多个进程或线程并发访问某一资源的机制。**在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。相对其他数据库而言,MySQL的锁机制比较简单,其最 显著的特点是不同的存储引擎支持不同的锁机制。
2024-02-06 12:33:32 147
原创 mysql死锁详解
上述,事务抛出1213这个出错提示,即发生了死锁,上例中当两个事务都执行了第一条UPDATE语句,更新了一行数据,同时也锁定了该行数据,接着每个事务都尝试去执行第二条UPDATE语句,却发现该行已经被对方锁定,然后两个事务都等待对方释放锁,同时又持有对方需要的锁,则陷入死循环。如果InnoDB监视器输出的最新检测到的死锁部分包含一条消息,“在锁表等待图中搜索太深或太长,我们将在事务之后回滚”,这表明等待列表中的事务数量已经达到了200的上限。这样,查询需要扫描的索引记录就更少,因此设置的锁就更少。
2024-02-06 12:32:20 141
原创 mysql事务锁
lock对象是事务,用来锁定的是数据库中的对象,如表、行、页。并且一般lock的对象仅在事务commit或rollback后进行释放(不同事务隔离级别释放的时间可能不同)。此外,lock,正如在大多数数据库中一样,是有死锁机制的。
2024-02-06 12:25:25 52
原创 mysql线程锁(latch)源码级详解
latch是闩锁,一种轻量级锁。要求锁定的时间必须非常短。若时间长,则性能非常差。其目的是为了保证并发线程操作临界资源的正确性。通常没有死锁检测通常指的是server层、innodb层的互斥锁和读写锁。
2024-02-06 12:21:07 180
原创 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 614
原创 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 264
原创 详解MYSQL中的平均值组大小
然而,前缀长度为索引规范CREATE TABLE,ALTER TABLE和CREATE INDEX语句解释为非二进制串类型的字符数(CHAR, VARCHAR, TEXT对于二进制串类型),并且字节数(BINARY, VARBINARY, BLOB)。平均值组的大小与表基数有关,表基数是值组的数目。sex的选择性低于province的选择性,所以当MySQL要走sex这个索引时,他需要扫描更多的行,所需要的成本越高。随着索引的平均值组大小的增加,该索引在这两个用途中的作用不大,因为每次查找的平均行数增加。
2024-02-05 18:07:12 211
原创 聚簇索引的效率明显要低于非聚簇索引,为什么还需要聚簇索引?
因为MyISAM的主索引并非聚簇索引,那么他的数据的物理地址必然是凌乱的,拿到这些物理地址,按照合适的算法进行I/O读取,于是开始不停的寻道不停的旋转。不过,如果涉及到大数据量的排序、全表扫描、count之类的操作的话,还是MyISAM占优势些,因为索引所占空间小,这些操作是需要在内存中完成的。key(索引值)和对应的数据,都会在一次IO操作中被读取到缓存中,所以在访问同一个页中的不同记录时,会在内存里操作,而不用再次进行IO操作了。辅助索引的叶子节点,存储主键值,而不是数据的存放地址。
2024-02-05 18:04:25 122
原创 复合索引(多列索引)的规则实例详解
这里虽然使用了name索引列,但是索引的type是index,也就说明这个查询走了索引列的全表扫描。也就是必须从last_name字段开始才能走索引,因为last_name字段是多列索引中的第一个字段,而B+tree的查找是从索引值的开头位置进行查找的.该索引可用于查询中的查找,这些查询指定在已知范围内的last_name、first_name和customize_name值组合的值。这里虽然使用了name索引列,但是索引的type是index,也就说明这个查询走了索引列的全表扫描。
2024-02-05 16:46:33 395
原创 不得不知的11个Redis 5.0的新特性
相较于Redis 4.0, Redis 5.0增加了很多新的特性,限于篇幅,本节主要介绍几个较重要的特性,具体内容可以参考官方文档。
2024-02-04 16:53:27 62
原创 mysql Change buffer详解
MySQL的Change buffer是一种用来优化更新操作的机制。当对数据库进行更新操作时,MySQL会先将更新操作记录到Change buffer中,然后再将更新操作应用到实际的数据页中。Change buffer的原理如下:当需要更新某个数据页时,MySQL首先会检查该数据页是否在内存中。如果数据页在内存中,直接在内存中进行更新操作;如果不在内存中,MySQL会将该数据页加载到内存中,然后在内存中进行更新操作。在进行更新操作时,MySQL会将更新操作记录到Change buffer中。
2024-02-03 23:41:48 107
原创 彻底搞懂字符集与字符编码
|很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。
2024-01-15 17:53:08 879
原创 彻底搞懂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 890
原创 win11家庭版开启hyper-v
然后系统自动进行Windows命令处理,我们等待处理完成以后,在最末处输入:Y,电脑自动重启,进行配置更新,重启后可以在“打开或关闭windows功能”里看到已经Hyper-V已经安装并打上勾了,重启即可使用。然后弹出一个 用户帐户控制 - Windows命令处理程序 对话框,我们点击:是。windows11家版没有hyper-v,只有专业版才有,需要手动开启。右键菜单中以管理员身份运行hyper.cmd。
2024-01-05 17:56:28 779 5
原创 win11家庭版开启远程桌面功能
即可,如果大家不放心,可用杀软进行查杀。用谷歌浏览器会提示危险文件,选择。win11家庭版不支持远程桌面。进行安装,安装成功则如下提示。进入控制面板界面,然后选择。,最后确保远程协助已允许;
2024-01-05 17:49:44 611
原创 win11家庭版开启(增加)组策略
右键以管理员运行gpedit.bat,在弹出的终端中按照提示输入Y即可安装,安装完成后重启即可。win11家庭版默认是没有组策略管理器的,需要手动开启。
2024-01-05 17:36:50 387
原创 Ubuntun使用ISO镜像中的软件包作为本地镜像源
sudo apt update 就可以看到镜像文件中的软件包了。新建本地目录,挂载ISO文件到本地目录。
2024-01-05 16:51:27 652
原创 解决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 382
原创 不停止业务的情况下优化 Elasticsearch Reindex
在使用 Elasticsearch 时,我们总有需要修改索引映射的时候,这时我们只能进行 _reindex。事实上,这是一个相当昂贵的操作,因为根据数据量和分片数量,完整复制一个索引可能需要几个小时。花费的时间不是大问题,但更严重的是,它会影响生产环境的性能甚至功能。相信大家都明白,数据迁移会消耗大量硬盘资源,肯定会影响性能,但功能呢?让我们以常规的 _reindex 为例。假设我们在索引上创建了一个别名。如果没有别名,我们就有大麻烦了。常规的reindex程序分为两个步骤。
2023-12-28 14:52:32 1127
原创 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 9101
原创 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 8788
原创 mysql中的server_id到底有什么用?详解mysql配置中的server_id配置项
当我们搭建MySQL集群时,自然需要完成数据库的主从同步来保证数据一致性。而主从同步的方式也分很多种,一主多从、链式主从、多主多从,根据你的需要来进行设置。但只要你需要主从同步,就一定要注意server-id的配置,否则会出现主从复制异常。server-id和,他们会影响二进制日志文件记录和全局事务标识。server-id。
2023-12-19 05:14:30 1063
原创 Elasticsearch的批量bulk 提交 写入的方式会有顺序问题吗?
比如发送到节点的时间,节点本身的空闲资源情况等。这句话的大概意思是,bulk的index操作性能是高于单文档的index操作的。所以在大量重复id的情况下,会大量触发refresh操作,(不重复的情况就不会)产生很多小的segments,然后又触发很多segment merge操作。要理解其中的缘由,首先必须了解ES的update操作,是先get出来最新的文档,然后在内存里更新,最后再写回去。ES官方是建议在业务场景允许的情况下,尽量使用bulk操作来提高index的性能,官方文档是这么说的。
2023-12-18 14:55:15 987
Elasticsearch技术解析与实战(朱林)
2018-12-21
勇哥带你玩转git基本操作
2017-04-19
Hadoop存储与计算分离实践
2017-04-19
史上最全vim配置带插件包,耗时一周打造,覆盖插件文件夹即可使用
2017-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人