《叶问》第6期
2018年7月26日,周四
专访黄炎:MySQL中间件的性能测试和常规业务性能测试相比有什么不同?
1、性能测试的方法论基本都一样, 以“观察-分析-改进-再观察”这个循环进行。
2、常规业务由于业务交互复杂、技术栈庞杂、性能瓶颈通常集中于业务, 性能测试使用的分析方法比较简单, 通过诊断业务通常可以低成本地找到性能瓶颈。
3、MySQL中间件的应用场景比较简单、技术栈稳定、性能瓶颈通常集中于架构和环境, 性能测试使用的分析方法比较多, 对性能瓶颈的分析通常成本比较高. 另外在这一方面的现有知识积累并不很成体系, 也是成本较高的原因之一。
2018年8月2日,周四
《全方位认识SYS系统库》公开课精彩互动问答:
1、为什么我用root用户调用call ps_setup_enable_instrument('wait');报错说存储过程不存在?
1、答:sys schema是从MySQL 5.7之后才默认支持,请确保你的数据库版本正确,且先使用use语句切换默认数据库,否则请带上 sys.库名称限定前缀。
2、myisam锁如何查询?
1、答:MyISAM 不支持事务,所以不存在事务锁,但可以查询表级锁(例如:MDL锁),通常表级锁是Server层添加的锁,与具体的存储引擎无关,所以与InnoDB存储引擎查询方法一致,建议多多尝试即可得出答案。
3、为什么我查询session系统表,当前正在执行SQL的会话的progress为 NULL 呢?
1、答:对于progress信息,仅支持stages事件(performance_schema.setup_instruments表的name字段以stages开头的采集项),其他事件类型不支持,且就算是stages类型事件,也不是所有的采集项都支持,可以通过观察performance_schema.events_stages_current表的WORK_COMPLETED和WORK_ESTIMATED字段,需要不为NULL值,progress信息就是根据这些不为NULL的值进行计算的
注意:要成功采集stages性能数据,必须打开stages事件相关的instruments和consumers
如果不满足以上条件,session视图查询到的progress字段就会显示NULL。
4、线上数据库,开启ps和关闭ps功能,mysqld使用的内存会相差20G,可以判断ps会用到很多主机内存。怎么判断ps功能回来多少内存?怎么进行优化ps对内存的使用?
1、答:ps的整体功能无法动态开关,必须在数据库启动之前就设置好,能够动态开关的只是ps的具体的instruments采集项和consumers存储表,对于查询ps使用的内存总量,可以使用语句 select sys.format_bytes(sum(current_alloc)) from sys.x$memory_global_by_current_bytes where event_name like 'memory/performance_schema%'; 查询,对于ps内存使用的优化,MySQL 提供了一系列performance_schema打头的系统变量来进行灵活配置,请根据需要自行调整,默认情况下不建议调整,除非你真的需求,否则就会浪费内存空间。
2018年8月7日,周二
在MySQL中如果发现乱码的情况该如何判断原因及应对?
1、直接修改法. alter或者pt-osc等其他工具直接对数据进行修改。
2、备份修改法. 利用mysqldump或者其他逻辑备份进行备份,备份的结果集再利用iconv进行转换
3、跳过字符集备份.利用mysqldump备份的时候跳过字符集-t --skip-set-charset。在恢复的时候指定表的字符集。
那么应该如何避免乱码呢?
1、首先要从应用端到MySQL,采用统一编码格式。
2、在MySQL的配置中,指定编码格式。
3、在上线或者导入SQL的时候,要注意本地的编码集。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《叶问》第5期
2018年7月17日,周二 MongoDB高并发写场景开启读写分离读从库为何阻塞? 我们该如何处理? 1、按业务拆分逻辑降低读写并发度2、添加分片均衡读写 3、升级至即将到来的4.0通过读snapshot解决从库读阻塞 2018年7月19日,周四 MongoDB 4.0有哪些新特性,你最期待的有哪些,为什么? 1、多文档事务的支持,解决了多文档操作的原子性问题2、snapshot读相关支持,使得可在某个timestamp点上读到一个一致性的快照3、Change Streams 支持实例及库级别粒度为业务提供了更多实时捕获变更的选择4、聚合框架支持类型转换及字符前后空格截断操作5、加入对SCRAM-SHA-256认证策略以支持更强的认证加密验证6、提供通过简单的命令开启免费监控功能7、更多的操作支持w:majority 比如对集合进行分片,创建删除集合等8、listCollections 可以指定nameOnly:true 而不加锁9、增加 rollbackTimeLimitSecs参数控制节点回滚的最大时间限制10、支持直接在mongos路由节点直接kill具体操作无需按分片进行11、...
- 下一篇
摸着石头过河:知乎核心业务 Go 语言改造实践
背景 众所周知,知乎社区后端的主力编程语言是 Python。 随着知乎用户的迅速增长和业务复杂度的持续增加,核心业务的流量在过去一年内增长了好几倍,对应的服务端的压力也越来越大。随着业务发展,我们发现 Python 作为动态解释型语言,较低的运行效率和较高的后期维护成本带来的问题逐渐暴露出来: 运行效率较低。知乎目前机房机柜空间已经不足,按照目前的用户和流量增长速度,可预见将在短期内服务器资源告急(针对这一点,知乎正在由单机房架构升级为异地多活架构); Python 过于灵活的语言特性,导致多人协作和项目维护成本较高。 受益于近些年开源社区的发展和容器等关键技术的普及,知乎的基础平台技术选型一直较为开放。在开放的标准之上,各个语言都有成熟的开源的中间件可供选择。这使得业务做选型时可以根据问题场景选择更合适的工具,语言也是一样。 基于此,为了解决资源占用问题和动态语言的维护成本问题,我们决定尝试使用静态语言对资源占用极高的核心业务进行重构。 为什么选择 Golang 如上所述,知乎在后端技术选型上比较开放。在过去几年里,除了 Python 作为主力语言开发,知乎内部也不乏 Java、Go...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS6,CentOS7官方镜像安装Oracle11G
- Windows10,CentOS7,CentOS8安装Nodejs环境