博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql优化--避免数据类型的隐式转换
阅读量:6954 次
发布时间:2019-06-27

本文共 417 字,大约阅读时间需要 1 分钟。

hot3.png

发现mysql服务器CPU占用率较高,而且从服务器上数据滞后主服务器很长时间。

122539_4fu5_1426212.png

从slow log文件中找到这样一条sql语句。

123120_Nocy_1426212.png

这个sql语句query_time达到了48.8秒,一个根据主键去更新的update语句居然耗时这么长。

查看执行计划,发现语句无法使用索引。

检查后发现主键_id字段是varchar类型,而语句中是long类型,发生了隐式类型转换,导致该语句无法使用主键索引,而必须走全表扫描(rows_examined:853805)的时候,全表扫描时是有表锁的(lock_time:46.41)。

在找到这个sql的来源,并修改成传递varchar类型后,再看执行计划,已经可以使用主键索引。

部署到主站后发现服务器CPU使用率下降,从服务器的数据滞后时长也变成了0秒。

 

数据类型隐式转换的小问题也能造成很大的影响。

转载于:https://my.oschina.net/u/1426212/blog/192205

你可能感兴趣的文章
xpath学习
查看>>
Java工程师的成长路线图是什么?
查看>>
JavaOne 2016——首日亮点
查看>>
EDU_BOOK 开发总结
查看>>
简单的支持网页画框拖拽缩放功能的js插件
查看>>
使用 ES2015 开发 Angular1.x 应用指南
查看>>
密码学协议 门限
查看>>
true or false in JavaScript
查看>>
Android学习笔记6:使用Intent1
查看>>
js实现继承的几种方式
查看>>
[LintCode/LeetCode] Two Strings are Anagrams/Valid Anagram
查看>>
Consul入门03 - 注册服务
查看>>
[Centos]necessary tools for newbie
查看>>
前端临床手札——单元测试
查看>>
Java IO : File
查看>>
MySQL Replication
查看>>
JavaScript数组去重总结
查看>>
MVVM_Android-CleanArchitecture
查看>>
iOS开发-协议Protocol&代理delegate
查看>>
【系统架构师修炼之道】(4):绪论——Zachman 框架
查看>>