MySQL在单实例性能方面和Oracle相比还有一些差距,我们通过规范和技术手段来降低这些性能差距带来的问题。

首先,大量甚至海量数据的增删改、查询、聚合查询的性能还有待提高。为了规避这些问题,我们在开发规范里面要求MySQL的实例大小低于150G,要求带变长行的表行数不超过500w,尽量降低查询、修改、删除脚本的复杂度,以原子查询的方式访问数据库。

其次,MySQL的优化器还不够完善。MySQL的优化器还更接近于基于规则的优化,而不是基于成本的优化,对复杂查询的智能优化有待提高。因此MySQL数据库多表联合查询的性能还不如Oracle。我们的开发规范要求开发人员尽量避免三个表以上的表关联查询。

第三,原生版本的MySQL主从延迟挺严重,远高于Oracle数据库。为此我们将批量更新和批量删除的事务的粒度拆分的比较细,同时在核心业务上使用SSD硬盘来降低主从延迟对业务的影响。

mysql单机高并发时性能不如oracle最核心的原因是什么?由于mysql是一个连接给一个线程,当并发高的时候,每秒需要几百个甚至更多的线程,其中创建和销毁线程还好说,大不了多耗费点内存,线程缓存命中率下降还有创建销毁线程的性能增加问题---这个问题不是特别大,重点是mysql底层瞬间处理这几百个线程提交的sql(有时候一个页面会有10多条sql,cpu一次只能处理一条sql)会导致cpu的上下文切换,性能抖动,然后性能下降,虽然mysql对多核cpu有做了优化,但是也并不完美,也仅限于24核心上下(也许是64以内,有做过测试,超过24再增加核心效果不明显)。所以mysql企业版本推出了线程池技术,另外percona的mysql有免费的线程池提供。可以极大提高高并发下mysql的性能(也就比没有大量并发的时候低20-30%左右这样子)

最新文章

  1. requestAnimationFrame在Chrome里的实现
  2. Cent OS 6 主机名设置
  3. maven添加jetty插件
  4. [Unity官方文档翻译]ScrollRect
  5. python的bind函数
  6. eclipse 常用的一些设置
  7. 手工杀毒辅助软件(PC Hunter) V1.51 免费绿色版
  8. jsp内置对象的方法
  9. webpack打包vue
  10. JS继承的从入门到理解
  11. H3C ER6300 + 两台 H3C S5120 组网举例
  12. 网页使用思源字体 CSS
  13. vue 里面引入高德地图
  14. options.html:1 Refused to load the script 'xxxx' because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:".
  15. kvm 创建新虚拟机命virt-install 使用说明
  16. Auty 2017——WebMonitor接口本地检测平台
  17. 有可能挑战Java优势的四种技术
  18. Mac OS X 10.8.5 安装编译glib
  19. Java设计模式(15)备忘录模式(Memento模式)
  20. 获取CheckBox的值

热门文章

  1. 计算机网络(二)--HTTP详解
  2. Git 分支使用
  3. UVA - 1608 Non-boring sequences(分治法)
  4. Gym - 101670A Amusement Anticipation(CTU Open Contest 2017 签到题)
  5. Cash Machine POJ - 1276
  6. <MyBatis>入门四 传入的参数处理
  7. 整理推荐比较好用的具有书签搜索功能的chrome插件
  8. BZOJ 3648 寝室管理
  9. 【DIP, 图像增强】
  10. 【Codeforces 1118D1】Coffee and Coursework (Easy version)