Ubuntu 20.04安装指定版本mongodb的命令

---以下是 Ubuntu 20.04安装指定版本mongodb的命令,以下以安装4.4系列的4.4.22版本为例,共4行---wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - echo "deb [ arch=amd64,arm64 ] ht 阅读全部

mysql使用key分区时,分区个数为非质数时分布不均

使用KEY或LINEAR KEY时,所有奇数编号分区(p1, p3, p5, … , p2n-1)中居然没有一条数据,同时,任何一个偶数编号分区却有很多的数据,而且还不是很均匀。如下图所示:MySQL key 分区原理KEY分区的原理:通过MySQL内置hash算法对分片键计算hash值后再对分区数取模,详见:https://dev.mysql.com/doc/refman/5.7/en/partitioning-key.html按键分区与按哈希分区类似,不同的是,哈希分区使用用户定义的表达式, 阅读全部

MongoDB/Mysql 如何以numactl 启动,开启 NUMA 以访问所有内存

  NUMA的含义,简单点说,在有多个物理CPU的架构下,NUMA把内存分为本地和远程,每个物理CPU都有属于自己的本地内存,访问本地内存速度快于访问远程内存,缺省情况下,每个物理CPU只能访问属于自己的本地内存。对于MongoDB这种需要大内存的服务来说就可能造成内存不足。需要使用numactl以使单颗CPU能访问所有内存。  如果你是单颗CPU,或mongdo占用不会超过整体内存的一半,大概不需要此设置。有测试在mysql上,此项配置对性能影响约10%。Ubuntu 安装 numa 阅读全部

mysql8.0 彻底删除data目录后的重新初始化操作

某些时候,mysql的数据目录data需要重置,如在彻底删除data后,会导致mysql无法启动。这个时候需要重启初始化一次data目录。重新初始化可按以下步骤操作:rm -rf /mysql/data/* mysqld  --initialize以上过程中,会为root自动生成一个密码,请注意保存然后再对目录进行重新分配用户chown -R mysql:mysql /mysql/data/再重启mysql即可。此方法生成的 阅读全部

mysql主从复制中,提高从库IO的几个问题

  主库能影响从库IO的几个参数:  sync_binlog = 1000  binlog_group_commit_sync_delay = 3000  binlog_group_commit_sync_no_delay_count = 0  从库设置(8.0后为replica_开头,之前为 slave_ 开头):  transaction_write_set_extraction  = XXHASH64  replica_parallel_type = LOGICAL_CLOCK  阅读全部

mysql5.7升级到mysql8.0的一些兼容性问题整理

mysql5.7升级 到mysql8.0 兼容性问题 - mysql8.0不支持mysaim分区,有mysaim分区的需转为innodbmysql5.7升级 MariaDB 10 兼容性和性能 - mariadb 默认没有 ngram推荐升级到8.0.26以上,磁盘格式用 XFS 阅读全部

mysql清除binlog命令:RESET MASTER和RESET SLAVE使用场景和说明

  【前言】在配置主从的时候经常会用到这两个语句,刚开始的时候还不清楚这两个语句的使用特性和使用场景。  经过测试整理了以下文档,希望能对大家有所帮助;  【一】RESET MASTER参数  功能说明:删除所有的binglog日志文件,并将日志索引文件清空,重新开始所有新的日志文件。用于第一次进行搭建主从库时,进行主库binlog初始化工作;  注意reset master 不同于purge binary log的两处地方1. reset master 将删除日志索引文件中记录的所有 阅读全部

mysql 8.0的坑收集: insert ignore的性能问题,高并发会导致锁表直到崩溃

前言:从mysql5.7升级到mysql8.0需谨慎mysql被收购后,新版本向下兼容变得越来越差,如果盲信升级,不小心就掉坑了。这就不难理解为什么mysql创始人 Monty (全名Ulf Michael Widenius) 要重新开发兼容mysql的mariaDB来应对改变。建议升级前,仔细阅读官方的升级日志,查看具体有哪些细节变化:https://dev.mysql.com/doc/relnotes/mysql/8.0/en/ 有些变化可能未在其中明确说明,那么就需要自己在线下试运行一段时 阅读全部

技术译文 | MySQL 8 需要多大的 innodb_buffer_pool_instances 值(下)

在《技术译文 | MySQL 8 需要多大的 innodb_buffer_pool_instances 值(上)》中我们在 innodb_buffer_pool_size=25G 的条件下进行了对 innodb_buffer_pool_instances 不同值的测试。本文将重复该测试,大小为 100GB 的数据库 innodb_buffer_pool_size=140G,这将是 CPU 密集型的情况。基准测试硬件配置表System | Supermicro; SY 阅读全部

技术译文 | MySQL 8 需要多大的 innodb_buffer_pool_instances 值(上)

作者:Vadim Tkachenko 翻译:管长龙 本文来源:https://www.percona.com/blog/2020/08/13/how-many-innodb_buffer_pool_instances-do-you-need-in-mysql-8/ 我曾经在文章《MySQL 5.7 安装后的性能调优》(文末链接)和《MySQL 101:调整 MySQL 性能的参数》(文末链接)中谈到过 innodb_buffer_ 阅读全部

MySQL备份工具之mydumper

1 工具介绍mydumper 是一款社区开源的逻辑备份工具。该工具主要由 C 语言编写,目前由 MySQL 、Facebook 等公司人员开发维护。官网地址:https://launchpad.net/mydumperGitHub 地址:https://github.com/maxbube/mydumper参考官方介绍,mydumper 主要有以下几点特性:支持多线程导出数据,速度更快;支持一致性备份;支持将导出文件压缩,节约空间;支持多线程恢复;支持以守护进程模式工作,定时快照和连续 阅读全部

mongodb复制集设置步骤

执行以下步骤之前,先在防火墙中放开指定IP的27017端口TCP连接。mongodb复制集设置步骤假设有2个节点,分别是:192.168.3.190:27017 和 192.168.3.192:270171、在各个节点的 config 文件中,设置复制集配置信息。绑定各自对外IP (推荐用内网IP,如使用公网IP,需同时指定密码)在主节点:net:   port: 27017   bindIp: 127.0.0.1,192.168. 阅读全部

【转载】關係型SQL的全文搜尋 FullText 方案先行探究分析

作者:DeepSkyFire  2020年06月06日近段时间一直在对全文搜寻引擎的方案进行调查,核心问题就是现行使用的Select...Like%$1%的模糊搜寻语句在高并行的场景下性能与效能非常差,虽然我已经做了相应的调优,但无奈终究不是长久之计。实际上在Web 领域经历了15 年的发展,PHP 从版本4 时代的龟速发展到现在的PHP7 的高效,再加上其他语言例如Go 与Rust 之类的高效语言的出现,在Web 开发领域中的瓶颈已经从以前的Web 程式变为SQL。当然在15 年前非 阅读全部

【转】MongoDB性能优化实践总结

MongoDB性能优化,这里只总结了一下我们实践过的性能要点,作为回顾。一. MongoDB服务端性能优化点1. 限制连接数Mongod 的服务模型是每个网络连接由一个单独的线程来处理,每个线程配置了1MB 的栈空间,当网络连接数太多时,过多的线程会导致上下文切换开销变大,同时内存开销也会上涨。另外,每个连接都要打开一个文件句柄,当然从成本上讲,这个消耗相对内存是小了很多。但换个角度,文件句柄也被其他模块消耗着,比如WT存储引擎,就需要消耗大量的文件句柄。分布式shard集群部署环境的最大连接数 阅读全部

转【MongoDB 配置篇】MongoDB 配置文件详解

目录 1 数据库环境 2 配置文件 2.1 配置文件格式 2.2 配置文件的使用 3 配置文件核心选项 3.1 systemLog选项 3.2 processManagement选项 3.3 cloud选项 3.4 net选项 3.5 security选项 3.6 setParameter 阅读全部

MySQL 优化闲聊 - mysql参数常用基础优化

  多年删库跑路、背锅经验告诉我,MySQL这个东西参数真的没啥好优化的,固定套路走一波 sysbench 不会太难看的,最后说到底还是磁盘「云上升配、自建么上Pcie」,平时自己测试玩都比生产猛「都可以压出各种异常,MySQL的日志莫非只有在这个时候有用?」,还哔哔慢「你说是谁的问题」。优化步骤  平时优化基本上按照如下顺序来玩即可  1. SQL优化是基础,Explain是神器  2. 软件优化,传说中的优化参数  3. 硬件优化,升配  4. 架构优化,这个就麻烦了,可能这个时候就要引入各 阅读全部

mysql 参数调优(1)之内存缓冲池innodb_buffer_pool_size

      内存的大小是最能直接反映数据库的性能。InnoDB存储引擎既缓存数据,又缓存索引,并且将它们缓存于一个很大的缓冲池中,即InnoDB Buffer Pool。因此,内存的大小直接影响了数据库的性能性能测试。  Percona公司的CTO Vadin对此做了一次测试,以此反映内存的重要性,结果如下图所示:      image.png  在上述测试中,数据和索引总大小为18GB,然后将缓冲池的大小分别设为2GB、4GB、6GB、8GB、10GB、12GB、14GB、16GB、18GB、 阅读全部

MySQL 选错索引的原因?

MySQL 中,可以为某张表指定多个索引,但在语句具体执行时,选用哪个索引是由 MySQL 中执行器确定的。那么执行器选择索引的原则是什么,以及会不会出现选错索引的情况呢?先看这样一个例子:创建表 Y,设置两个普通索引, 创建一个存储过程用于插入数据。MySQL: 5.7.27, 隔离级别: RRCREATE TABLE `Y` (  `id` int(11) NOT NULL AUTO_INCREMENT 阅读全部

mysql全文索引字段加权重的实现方法

mysql建立全文索引时,可以实现模糊匹配:select MATCH (index) AGAINST ('key1 key2 key3') as score但如果要对多字段搜索,则没有直接对不同字段设置不同权重的,比如有 title 和 content 的字段,如果想让 title 的权重比 content 要高,可以通过两条索引加权后排序来完成,参考以下的代码:  drop table if exi 阅读全部

xunsearch同步索引技术

https://blog.csdn.net/wzm112/article/details/39001431 阅读全部