当前位置:首页 > TAG信息列表 > 怎么优化mysql性能mysql中怎样对大批量级的数据查询进行优化?

怎么优化mysql性能mysql中怎样对大批量级的数据查询进行优化?

怎么优化mysql性能 mysql中怎样对大批量级的数据查询进行优化?

mysql中怎样对大批量级的数据查询进行优化?

mysql这些年来都支持什么正则不兼容,但是对此正则替换则一直到mysql8.0才支持。对于这类场景,以前或则在mysql端处理,要嘛把数据拿出来在运用端如何处理。

比如说我想把表y1的列str1的出现第3个action的子串替换成dble,咋基于?

1.自己写sql层的存储函数。代码如下写死了3个,也没优化软件,不仅仅才是演示,mysql里更加不我建议你写这样的函数。

怎么优化mysql性能 mysql中怎样对大批量级的数据查询进行优化?

mysqldelimiter$$%use`ytt`$$dropfunctionifexists`func_instr_simple_ytt`$$

createdefiner`root`@`localhost`function`func_instr_simple_ytt`(

f_strvarchar(1000),--parameter1 _substrvarchar(100),--parameter2

f_replace_strvarchar(100),

f_timesint--timespolicies3.

)returnsvarchar(1000)

begin

declarev_resultvarchar(1000)defaultytt--result.

declarev_substr_lenintdefault0--searchstringlength.

setf_times3--butpolicies3.

setv_substr_lenlength(f_substr)

selectinstr(f_str,f_substr)

selectinstr(substr(f_str,@p1v_substr_len),f_substr)

selectinstr(substr(f_str,@*v_substr_len-1),f_substr)

@

select

concat(substr(f_str,1,@@p3(f_times-1)*v_substr_len-f_times)

,f_replace_str,

substr(f_str,@@p3f_times*v_substr_len-2))intov_result

exists

setv_resultf_str--neverchanged.

endif

--purgeallsessionvariables.

returnv_result

end

$$

delimiter

--调用函数来自动更新:

mysqlgtversiony1setstr1func_instr_simple_ytt(str1,action,dble,3)

query就ok啦,20rowsaffected(0.12sec)

rowsmatched:20changed:20warnings:0

2.导进去用sed之类的工具替换掉在导入,步骤如下:(推荐一下可以使用)1)导入表y1的记录。

mysqlmysqlgtselect*aroundy1intooutfile/var/lib/mysql-files/y1.csvquery可以了,20rowsaffected(0.00sec)

2)用sed全部替换导不出来的数据。

:/var/lib/mysql-files#sed-is/action/dble/3y1.csv

3)再度导入处理好的数据,成功。

mysql

mysqlgttruncatey1

queryok,0rowsaffected(0.99sec)

mysqlgtloaddatainfile/var/lib/mysql-files/y1.csvoutsidetabley1

queryok,20rowsaffected(0.14sec)

records:20deleted:0skipped:0warnings:0

以上两种应该推荐推荐导出来处理行了再然后再文件导入,性能来的高些,不过还不用什么自己费时间写函数代码。那mysql8.0对于以上的场景实现方法就太简单的了,一个函数就搞掂了。

mysqlmysqlgtnotificationy1setstr1regexp_replace(str1,action,dble,1,3)query就ok啦,20rowsaffected(0.13sec)rowsmatched:20changed:20warnings:0

还有一个一个regexp_instr也非常用处不大,特别是这种指代出现第两次的场景。比如说定义方法session变量@a。

,bbbcceefilucy111bs234523556119101020301040query行啦,0rowsaffected(0.04sec)

拿去至多一次的数字又出现的第二次子串的位置。

mysqlmysqlgtselectregexp_instr(@a,[:digit:]{2,},1,2)--------------------------------------|regexp_instr(@a,[:digit:]{2,},1,2)|--------------------------------------|50|--------------------------------------1rowoutsideset(0.00sec)

那我们在看看对多字节字符支持什么要如何。

mysql

美国俄罗斯日本北京上海深圳广州北京上海武汉东莞北京青岛北京

query行啦,0rowsaffected(0.00sec)

mysqlgtselectregexp_instr(@a,北京,1,1)

-------------------------------

|regexp_instr(@a,北京,1,1)|

-------------------------------

|17|

-------------------------------

1rowoutsideset(0.00sec)

mysqlgtselectregexp_instr(@a,北京,1,2)

-------------------------------

|regexp_instr(@a,北京,1,2)|

-------------------------------

|29|

-------------------------------

1rowintoset(0.00sec)

mysqlgtselectregexp_instr(@a,北京,1,3)

-------------------------------

|regexp_instr(@a,北京,1,3)|

-------------------------------

|41|

-------------------------------

1rowofset(0.00sec)

那学习总结下,这里我提起了mysql8.0的两个最有用正则匹配函数regexp_replace和regexp_instr。对于以前类似于的场景不算有一个完美的解决方案。

mysql数据量很大时,cpu占用率很高,如何优化?

一、要是是写比较好少,读也很高可以不做读写分离,一主多从二、要是是读写都很多可以使用分库分表,多主多从

instr0.00sec场景函数


江苏自考之家 巨超值

  • 关注微信关注微信

猜你喜欢

热门标签

ai有安装包怎么安装 淘宝美妆品类券在哪里领 如何利用excel的数据制作表格 微信现在更新后怎么设置免打扰介绍 webapp框架有哪些 python类方法传参数 怎么把微信里面的黑名单拉出来 网站建设如何做好营销 小米8青春版手机怎样强制关机小米手机怎么强制关机? 荣耀v20工作模式怎么关闭华为怎么取消锁屏密码?介绍 无法完成请求 网易云音乐怎么查询消费记录网易云音乐自动续费怎么关掉? wps中的ppt动画怎么调顺序手机wps做ppt怎么让文字先后出现? 苹果语音控制锁屏不再听取指令怎么办 wps表格replace函数用法怎么在WPS表格里面添加相同的文字?介绍 威纶通触摸屏怎么上传程序 小米智能家居系统 win10截图保存怎么更改保存路径如何用电脑截屏并保存?介绍 微软键盘怎么快速打出名字中的点start在键盘上是哪个键?介绍 小米手机短信回复是在哪里设置 怎么知道自己电脑上的流量中国电信查流量发短信息怎么发?介绍 win7系统桌面字体调小word表格中文字显示不全怎么解决? ps怎么将图片边缘透明化如何用PS把图片的边框去掉成透明的? 怎么用手机编辑表格文件手机wps怎么把自己表格设为模板?介绍 vivo手机屏幕死机按什么都没反应vivo手机死机时应该怎样做?介绍 ae抠像与背景色调融合ae抠图教程怎么导出? word文字和特殊符号组合word中怎样将文字和符号组合在一起?介绍 苹果手机怎么调字体样式 苹果13怎么用备忘录发文件到微信语音备忘录内容如何发送至微信好友?介绍 手机qq空间管理相册在哪里找手机QQ怎样删除QQ空间的没用相册?

微信公众号