mysql 关联查询速度慢 (解决)
生活随笔
收集整理的這篇文章主要介紹了
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格式
總結(jié)
以上是生活随笔為你收集整理的mysql 关联查询速度慢 (解决)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql联合查询_mysql中的联合查
- 下一篇: mysql联合查询的几种方式