mysql优化之路
Elemyin
哦豁~
展开
-
mysql 千万数据迁移的几种方式
最近因为业务需求,我们需要将我们的订单表(一千三百万数据,并且每天已五万条速度增加)已订单类型分组迁移到新的业务表中,以降低我们订单表的大小,同时暂时杜绝订单表所带来的数据瓶颈问题,需求下来了,基本思路也要确定下来,我打算先将三天前的历史数据先跑到表里,待整个业务线迁移过后,我再将剩下的数据跑进去,思路确立了,我就轰轰烈烈的干了起来。首先我理所当然的想用代码实现,我就吭哧吭哧的用go写了是个协程同时跑数据,用gorm v2的FindInBatches可以批量插入数据,sql为insert into XXX原创 2020-08-22 14:08:20 · 2975 阅读 · 0 评论 -
mysql 自动设置my.ini、my.cnf中basedir和datadir的相对路径
在实际生产中,我们经常用到mysql的安装,但是每次都需要手动设置配置文件中basedir和datadir的路径,但路径又基本上是当前安装路径,那我们是不是可以设置成自动配置成相对路径呢,当然可以。我们新建一个文本文档,然后粘贴一下代码:@echo offset "pth=%~dp0"set "pth=%pth:\=/%"set "pth=%pth:~,-1%"(for /f "tokens=1,2* delims=:=" %%a in ('findstr /n .* my.ini') do (原创 2020-08-14 17:52:45 · 3305 阅读 · 0 评论 -
linux下开启、关闭、重启mysql服务命令
一、 启动1、使用 service 启动:service mysql start2、使用 mysqld 脚本启动:/etc/inint.d/mysql start3、使用 safe_mysqld 启动:safe_mysql&二、停止1、使用 service 启动:service mysql stop2、使用 mysqld 脚本启动:/etc/inint.d/mysql stop3、mysqladmin shutdown三、重启1、使用 service 启动:service mysq原创 2020-06-08 14:31:28 · 1352 阅读 · 0 评论 -
mysql 中的隐式转换导致sql变慢
mysql 中的隐式转换导致sql变慢1、场景2、举例3、总结4、拓展1、场景线上跑了一个慢sql,查看表结构,表里面有order_no的唯一索引此处注意mysql查询隐式转换的导致问题,当查询条件左右两侧类型不匹配是,就会发生隐式转换,导致索引无法起作用2、举例库里有一张表,有字段order_no(varchar),final_amount(decinal):分别有唯一索引order_no和正常索引final_amount我们使用: explain select * from order原创 2020-05-29 11:27:34 · 485 阅读 · 0 评论 -
mysql关闭缓存
mysql关闭缓存1、背景2、过程3、解决4、尾声1、背景最近我们做了一个每天把线上的慢sql发送邮件的机制,随后而来的是每天早上来的第一件事情就是优化慢sql,优化当然是有比较才叫优化啦。然后我就很开心的开始了我的优化之旅,每优化完一个慢sql后直接在Navicat里面跑,哦豁,变快了,我再次把老得慢sql拿来跑,尴尬的发现原来的sql也变得很快,第一次很慢,随后的查询都变得很快,立马联想到的当然是缓存啦,那该如何关闭掉mysql的缓存呢,这就是我们今天要说的话题。2、过程首先当然是找度娘看了下,原创 2020-05-28 11:53:20 · 2926 阅读 · 0 评论 -
通过执行计划,计算出mysql走的索引
通过执行计划,计算mysql走的索引前言公式举例总结前言在实际生产中,我们经常通过explain关键字来查看sql的执行计划,执行计划中各字段的含义我这里就不多赘述,需要了解详情的可以点击查看。我们需要注意的几个字段是访问类型type(ALL、index、range、 ref、eq_ref、const、system、NULL 从左到右,性能从差到好)、使用的索引key(key列显示MySQL实际决定使用的键(索引),必然包含在possible_keys中)、key_len(表示索引中使用的字节数,可通原创 2020-05-26 12:42:42 · 256 阅读 · 0 评论