欢迎来到天天文库
浏览记录
ID:39711877
大小:931.27 KB
页数:26页
时间:2019-07-09
《数据库的优化与调优:从理论到实践》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库的优化与调优:从理论到实践网易杭研——何登成自我简介何登成网易——杭州研究院;工作领域数据库引擎/分布式数据库/分布式KV技术领域数据库/分布式/并发编程/性能优化联系方式微博:何_登成博客:何登成的技术博客Outline数据库性能优化与调优:从理论到实践理论篇从串行到并行从畅通无阻到排队必须了解的硬件知识实践篇MySQL各版本的优化MySQL使用中的调优理论篇理论篇从串行到并行欢迎来到并行世界:Moore'sLaw并行世界,串行的副作用:Amdahl'slaw从畅通无阻到排队并发的世界,充满排队:QueueingTheory必须了解的硬件知识CPU/Cache
2、/Memory/Disk...欢迎来到并行世界摩尔定律(Moore'sLaw)失效了?No,只是转变了形式而已。HerbSutterTheFreeLunchIsOver–AFundamentalTurnTowardConcurrencyinSoftware.何谓FreeLunch?通过CPU主频提升,软件能够自动提升性能的时代已经一去不复返;是时候考虑多线程/并发程序了;并行世界,串行的副作用GeneAmdahl怎么说(Amdahl'slaw)?P:程序可并行执行比率1-P:串行比率N:N个ProcessorsS(N):加速比解读:程序的极限性能,最终取决于程序串行部
3、分所占比率;尽量消除程序中的串行部分;无限制的并行,您无法达到现实生活中无限制的并行,您无法达到(续)硬件资源瓶颈/软件内部等待CPU/Memory/Disk...Mutex/Spinlock/...排队论(QueueingTheory)资源利用率;响应时间/等待时间;吞吐量;这些指标,均与性能相关;Little’sLawL:平均队列长度;Lambda:平均吞吐率;W:平均响应时间;写程序,为什么需要了解硬件?看看他们怎么说?Hardwareandsoftwareworkingtogetherinharmony.MartinThompsonKnowHardwareto
4、DesignBetterSoftware.未找到出处,暂时算我说的吧硬件与软件性能息息相关硬件各组件的Latency和Throughput;语言那些与硬件相关的特性;当前的硬件发展到了什么阶段?注:来自MartinThompsonCPUCacheFlushingFallacy一文;硬件各组件Latency对比注:来自GreggBrendan《SystemsPerformance:EnterpriseandtheCloud》一书;授人以鱼不如授人以渔你应该亲自测试这些硬件性能指标IgorOstrovsky——GalleryofProcessorCacheEffects
5、测试内存Latency;测试CacheLines大小;测试L1/L2/L3Cache大小;...ccBench——EverythingYouAlwaysWantedtoKnowaboutSynchronizationbutWereAfraidtoAsk(SOSP’13)小工具,可以测试CPUCache/CacheCoherence/AtomicOperations性能理论结束,该来点实战了吐槽时间前面说了这么多,真的跟MySQL数据库的优化与调优有关系吗?你不是在忽悠吧?接下来,让我们通过实践篇,来看看前面的这些理论,在MySQL数据库中是如何得到实践的。数据库的优化
6、与调优:实践篇实践篇MySQL各版本的优化基础优化:串行并行进阶优化:减少系统中的串行点高级优化:软硬件相辅相成MySQL使用中的调优资源利用率没到100%认识MySQL,构建平衡系统基础优化-拿串行开刀(一)臭名远播的prepare_commit_mutex目的:保持事务在InnoDB存储引擎与MySQLBinlog中提交顺序的一致性;InnoDBPrepare:持有此MutexMySQLBinlogCommit;InnoDBCommit:释放此Mutex事务串行化提交;MySQLGroupCommitOracleMySQLGroupCommitStartingw
7、ithMySQL5.6MariaDBGroupCommitStartingwithMariaDB5.3How?基础优化-拿串行开刀(二)你的Slave延迟了多久?MySQLReplication基于Binlog的复制两个线程I/OThread:负责与Master通讯,接收BinlogSQLThread:负责Binlog在Slave的回放,单线程ParallelSlaveReplicationOracleMySQLStartingwithMySQL5.7.2MariaDBImplementationStartingwithMariaDB10.0.5效果
此文档下载收益归作者所有