【转】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 阅读全部

全文检索:sphinx_elasticsearch_xunsearch选型分析

全文检索:sphinx_elasticsearch_xunsearch选型分析开发语言:Sphinx和Xunsearch是基于C/C++开发、Elasticsearch基于java开发MySQL数据导入及索引生成:Sphinx > Elasticsearch > XunsearchSphinx跟RDBMS(特别是MYSQL)绑定的特别紧密,在导入MySQL数据生成索引时,从易用性、可靠性、速度上来看,Sphinx优于ElasticSearch。Sphinx真的很快。ElasticSe 阅读全部

mysql优化–explain分析sql语句执行效率

Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。Explain语法:explain select … from … [where …]例如:explain select * from news;输出:+----+-------------+-------+-------+-------------------+---------+---- 阅读全部

转载:MySQL Performance-Schema(三) 实践篇

前一篇文章我们分析了Performance-Schema中每个表的用途,以及主要字段的含义,比较侧重于理论的介绍。这篇文章我主要从DBA的角度出发,详细介绍如何通过Performance-Schema得到DBA关心的数据,比如哪个SQL执行次数最多,哪个表访问最频繁,哪个锁最热等信息。通过充分利用Performance-Schema表的数据,让DBA更了解DB的运行状态,也更有助于排查定位问题。本文主要从两方面展开讨论,第一方面是统计信息维度,包括SQL维度,对象维度和等待事件维度三小点;第二方 阅读全部

转载:MySQL Performance-Schema(二) 理论篇

MySQL Performance-Schema中总共包含52个表,主要分为几类:Setup表,Instance表,Wait Event表,Stage Event表Statement Event表,Connection表和Summary表。上一篇文章已经着重讲了Setup表,这篇文章将会分别就每种类型的表做详细的描述。Instance表     instance中主要包含了5张表:cond_instances,file_instances,mutex_instanc 阅读全部

转载:MySQL Performance-Schema(一) 配置篇

performance-schema最早在MYSQL 5.5中出现,而现在5.6,5.7中performance-Schema又添加了更多的监控项,统计信息也更丰富,越来越有ORACLE-AWR统计信息的赶脚,真乃DBA童鞋进行性能诊断分析的福音。本文主要讲Performance-Schema中的配置表,通过配置表能大概了解performance-schema的全貌,为后续使用和深入理解做准备。配置表Performance-Schema中主要有5个配置表,具体如下:root@performanc 阅读全部

MySQL 找到创建临时表到磁盘的SQL

mysql> select version();+------------+| version()  |+------------+| 5.6.14-log |+------------+mysql> show global status like 'Created_%_tables';+-------------------------+-------+| Variable_name          &n 阅读全部

使用Mysql联合索引减少 create sort index 和filesort ,提高 order by 性能的案例和优化方法

总结:如果使用 where `index_1` + order by `index_2` 的情况下,可能会引起 using filesort ,可通过 explain 查看,mysql将会先取出数据,然后在内存中生成临时文件并排序。如果大量的这种查询,会导致CPU占用过高。优化方法即增加联合索引,直接读取索引就可以得到顺序,不需要临时排序。联合索引的顺序需要与查询语句中的顺序一致!如  where `index_1` = ?& 阅读全部

【转载】一个MySQL 5.7.18分区表性能下降的案例分析与排查

作者介绍姜宇祥,2012年加入携程,10年数据库核心代码开发经验,相关开发涉及达梦、MySQL数据库。现致力于携程MySQL的底层研发,为特殊问题定位和处理提供技术支持。本文来自携程技术中心公众号(id:ctriptech),经同意授权转载。 前言:希望通过本文,使MySQL5.7.18的使用者知晓分区表使用中存在的陷阱,避免在该版本上继续踩坑。同时通过对源码的分享,升级MySQL5.7.18时分区表性能下降的根本原因,向MySQL源码爱好者展示分区表实现中锁的运用。 问题描 阅读全部

Ubuntu中Mysql 5.7的open_files_limit默认值过小导致的server has gone away问题解决

Mysql 5.7的open_files_limit 默认值为 1024,连接数过多和打开表,都会占用这个值。问题:MySQL server has gone away原因:open_files_limit默认值过小,导致mysql报错:Too many open files,进而mysql停止服务。其它很多情况都会引起 gone away ,具体情况需要查询mysql的错误日志,本文主要解决由 open_files_limit 值引起的问题。解决步骤:第1步、修改 mysq 阅读全部

MySQL 百万级-千万级分页优化

 少量翻页使用:SELECT * FROM table ORDER BY id LIMIT 1000, 10; 优化型翻页:SELECT * FROM table WHERE id >= (SELECT id FROM table LIMIT 1000000, 1) LIMIT 10; 超快速优化页:SELECT * FROM table WHERE id BE

阅读全部

mysql服务性能优化—my.cnf_my.ini配置说明详解(16G内存)

 此配置是某生产线上使用的配置,在培训的时候,他给的,我在这里,对各参数添加了中文说明

这配置已经优化的不错了,如果你的mysql没有什么特殊情况的话,可以直接使用该配置参数

... 阅读全部