最近项目使用mysql数据库遇到了性能问题。单表400W以上数据时, 增,删,改,查 的速度都明显下降。
我们是做呼叫中心的,平均1秒钟就要处理20个呼叫,所以 最最保守的计算 1秒钟也要对单表进行20次插入操作,还有更多的查询操作,所以对性能要求略高。(有点儿跑题。。。。)
遇到了问题就要解决,优化!我们优化的步骤如下(过程中遇到的困难略):
1.优化索引,将所有sql语句,尤其是速度慢的都拿出来分析,一条一条的分析。(利用 EXPLAIN )要让所有查询都使用到索引。
2.优化mysql数据库本身,对my.cnf(my.ini)文件进行优化。但是个人觉得效果不是很明显(请牛人指导。)
my.cnf文件配置如下。(4核cpu 4G 内存)这个my.cnf 具体问题具体分析,配置起来也有很多事儿比较有讲究的。
所以需要逐步调试。(切忌不可大量修改后再重启mysql....有可能启动失败。)
[client] port=3306 [mysql] default-character-set=utf8 [mysqld] port=3306 basedir="D:/Program Files/MySQL/MySQL Server 5.1/" datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/" default-character-set=utf8 default-storage-engine=INNODB sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" max_connections=1000 query_cache_size=120M table_cache=1024M tmp_table_size=32M thread_cache_size=64 myisam_max_sort_file_size=100G myisam_sort_buffer_size=64M key_buffer_size=512M max_allowed_packet = 32M max_heap_table_size = 32M table_open_cache = 512M thread_concurrency = 8 innodb_lock_wait_timeout = 50 bulk_insert_buffer_size = 64M key_cache_block_size=2048 skip-external-locking skip-name-resolve read_buffer_size=8M read_rnd_buffer_size=8M sort_buffer_size=64M innodb_additional_mem_pool_size=20M innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=8M innodb_buffer_pool_size=512M innodb_log_file_size=24M innodb_thread_concurrency=10
3.分表 分表是解决大数据量的最佳方案。
我们的mysql数据库 单表400万 以上数据的时候就不符合性能要求了(我们对性能要求有点儿高)。但是我们一天产生的数据量就达到了单表200万。。总不能1天就建立一套表出来吧?? 那1,2年以后 数据库就会有600多套表(一套表有几十张呢,也就是上万张单表),看着都头疼呀。。。。。
4.从业务上解决,实现曲线救国。(这也是我们最后采用的方法,这个方法不一定适用其他业务)
我们的业务是这样,1小时对流水数据结转一次,生成统计数据。
最后决定生成插入流水数据的时候分2套流水表插入(一套用来保存流水数据,另一套用来结转统计数据。)
为什么要分成2套呢?
为了性能,用来保存流水数据的那套表就不去对它进行操作了。(起到备份数据之用。)
用来结转成统计数据的那套流水表,在结转结束之后就会删除掉以结转的数据。
这样一来,结转用的那套流水表的数据量就不会持续增长,也就保证了数据结转的效率。
希望对其他人 有点儿小启示。。。。。。
请大家不要笑我。。我的mysql 是盗版的。。。没有mysql DBA给我调优。更没有人会给我订制我们专用的mysql
只能这样曲线救国的解决了。。。。
相关推荐
常见的MySQL性能问题可能由多种原因引起,包括主机资源瓶颈、服务器和操作系统配置不当、以及MySQL本身的配置问题。主机资源瓶颈可能包括CPU核数不足、CPU利用率过高、负载过大、磁盘I/O写入(WIO)的百分比高,以及...
然而,随着数据量的不断增加和业务需求的不断增长,MySQL的性能问题也越来越突出。因此,对MySQL数据库进行性能优化已经成为提高应用程序性能和可靠性的关键因素。 MySQL性能优化金字塔法则是由一位知名MySQL专家...
MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计MySQL性能调优与架构设计
"MySQL性能调优与架构设计.pdf" 本资源摘要信息是关于 MySQL 数据库软件的性能调优和架构设计的知识点。MySQL 是一个流行的开源数据库管理系统,具有简单高效可靠的特点,广泛应用于各个行业。以下是从给定的文件中...
总的来说,【MySQL 性能测试脚本】是一个强大的工具,它能够帮助我们识别和解决MySQL性能问题,提升数据库的稳定性和效率。通过熟练运用和理解其中涉及的知识点,可以有效地维护和优化数据库系统。
MySQL性能提升是一个关键议题...整体而言,MySQL性能提升的知识点涵盖了从性能问题的识别和分析、并发控制机制的理解、SQL写法的优化到测试方法的运用等多个方面,强调了系统性能提升的多维度考虑和综合性的解决方案。
"MySQL性能优化和高可用架构实践" ...本书总结了在优化MySQL性能和高可用架构过程中可能遇到的问题及解决方法。例如,如何避免过早优化、如何权衡性能与稳定性等。这些经验教训将帮助读者在实践中少走弯路。
MySQL性能优化与架构设计是数据库管理员、开发人员和系统管理员关注的重要领域,因为数据库性能直接影响到应用程序的响应速度和整体用户体验。本资料提供了一个全面的视角,深入探讨了如何优化MySQL的性能并进行有效...
在面对MySQL性能问题时,通常遵循一系列步骤进行诊断和优化。首先,我们需要排除那些不可复现的外界因素,如网络延迟或临时的硬件故障。如果问题仍然存在,那么我们可能需要对SQL查询进行优化,这可能涉及到减少查询...
自己整理的mysql性能测试脚本,需要的同学,可以下载使用
MySQL 性能优化 Explain ,MySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 Explain
MySQL性能调优与架构设计 PDF图书MySQL性能调优与架构设计 PDF图书
MySQL性能优化是数据库管理员和开发人员的关键技能,它涉及到如何有效地使用SQL语句、存储过程和函数,以提高数据查询速度和系统整体效率。本手册将深入探讨这些关键领域,帮助你理解并实施最佳实践。 在SQL语句...
本书以 MySQL 数据库的基础及维护为切入点,重点介绍了 MySQL 数据库应用系统的性能调优,以及高可用可扩展的架构设计。 全书共分3篇,基础篇介绍了MySQL软件的基础知识、架构组成、存储引擎、安全管理及基本的备份...
MySQL性能调优参数 MySQL 是一个广泛使用的开源关系型数据库管理系统,在实际应用中,如何提高 MySQL 的性能是一个关键的问题。本文将总结 MySQL 性能调优参数,涵盖 Innodb 相关参数、连接参数、缓存参数、日志...
MySQL性能监控是数据库管理员日常工作中不可或缺的部分,它可以帮助我们及时发现和解决系统性能问题,确保数据库高效稳定运行。本文将详细介绍“mysql 性能监控脚本”及其在IT领域的应用。 MySQL性能监控脚本通常是...
MySQL性能优化是数据库管理中的关键环节,特别是在高并发场景下,优化MySQL的性能对于提升系统整体效率至关重要。本教程将深入探讨MySQL性能优化的各个方面,帮助你理解并实践有效的优化策略。 首先,我们来了解**...