日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 关联查询速度慢 (解决)

發(fā)布時間:2023/12/2 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 关联查询速度慢 (解决) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 記錄原因:mysql關(guān)聯(lián)查詢速度很慢,是由于字段字符集規(guī)則不一致所導(dǎo)致

  • 1.1 在一次線上的服務(wù)中,發(fā)現(xiàn)有幾個關(guān)聯(lián)查詢速度特別慢,試過了多種優(yōu)化方案,最后把問題定格在 count() 這個函數(shù),由于是分頁查詢,所以肯定會有count()來去查詢記錄數(shù),但是每次執(zhí)行這個count()都會卡住好幾秒
  • 1.2 最終發(fā)現(xiàn) 被關(guān)聯(lián)的兩個表 字符集規(guī)則不一致,一個是utf8_general_ci,另一個是utf8mb4_0900_ai_ci,具體原因可能是因為線上服務(wù)器和本地服務(wù)器的mysql版本不同導(dǎo)致的,在覆蓋的時候出現(xiàn)了問題

2. 解決方案

# 查看各個字段的字符集規(guī)則: show full columns from 表名; # 修改字段的字符集: ALTER TABLE 表名 CHANGE 字段名 字段名 VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci; # 修改表的默認字符集: ALTER TABLE 表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; # 查看數(shù)據(jù)庫編碼: SHOW CREATE DATABASE db_name; # 查看表編碼: SHOW CREATE TABLE tbl_name;

3. 具體操作

  • 這邊我是一個字段一個字段的改 把兩個表的字段都統(tǒng)一成了utf8_general_ci格式
ALTER TABLE 表名 CHANGE 字段名 字段名 varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci;

總結(jié)

以上是生活随笔為你收集整理的mysql 关联查询速度慢 (解决)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。