mysql 关联查询速度慢 (解决)
生活随笔
收集整理的這篇文章主要介紹了
mysql 关联查询速度慢 (解决)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 記錄原因:mysql關(guān)聯(lián)查詢速度很慢,是由于字段字符集規(guī)則不一致所導(dǎo)致
- 1.1 在一次線上的服務(wù)中,發(fā)現(xiàn)有幾個(gè)關(guān)聯(lián)查詢速度特別慢,試過了多種優(yōu)化方案,最后把問題定格在 count() 這個(gè)函數(shù),由于是分頁查詢,所以肯定會(huì)有count()來去查詢記錄數(shù),但是每次執(zhí)行這個(gè)count()都會(huì)卡住好幾秒
- 1.2 最終發(fā)現(xiàn) 被關(guān)聯(lián)的兩個(gè)表 字符集規(guī)則不一致,一個(gè)是utf8_general_ci,另一個(gè)是utf8mb4_0900_ai_ci,具體原因可能是因?yàn)榫€上服務(wù)器和本地服務(wù)器的mysql版本不同導(dǎo)致的,在覆蓋的時(shí)候出現(xiàn)了問題
2. 解決方案
# 查看各個(gè)字段的字符集規(guī)則: show full columns from 表名; # 修改字段的字符集: ALTER TABLE 表名 CHANGE 字段名 字段名 VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci; # 修改表的默認(rèn)字符集: ALTER TABLE 表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; # 查看數(shù)據(jù)庫編碼: SHOW CREATE DATABASE db_name; # 查看表編碼: SHOW CREATE TABLE tbl_name;3. 具體操作
- 這邊我是一個(gè)字段一個(gè)字段的改 把兩個(gè)表的字段都統(tǒng)一成了utf8_general_ci格式
總結(jié)
以上是生活随笔為你收集整理的mysql 关联查询速度慢 (解决)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql联合查询_mysql中的联合查
- 下一篇: mysql联合查询的几种方式