mysql 回退查询_MYSQL数据库表排序规则不一致导致联表查询,索引不起作用问题...
Mysql數(shù)據(jù)庫(kù)表排序規(guī)則不一致導(dǎo)致聯(lián)表查詢,索引不起作用問題
表更描述: 將mysql數(shù)據(jù)庫(kù)中的worktask表添加ishaspic字段。
具體操作:(1)數(shù)據(jù)庫(kù)worktask表新添是否有圖片字段ishaspic;新添字段時(shí),報(bào)錯(cuò)
[SQL] alter table WorkTask add ishaspic int(10) Null;
[Err] 1034 - Incorrect key file for table ‘WorkTask‘; try to repair it
解決方案:新建worktask表,添加ishaspic字段,將原worktask表中的數(shù)據(jù)插入新建表中.
(2)生產(chǎn)環(huán)境部署變更代碼,應(yīng)用啟動(dòng)后,一段時(shí)間后臺(tái)報(bào)錯(cuò)
org.hibernate.exception.GenericJDBCException: Could not open connection
java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
(3)監(jiān)控?cái)?shù)據(jù)庫(kù)服務(wù),發(fā)現(xiàn)查詢sql突然變慢,數(shù)據(jù)庫(kù)服務(wù)器CPU資源占用率超高。
(4)變更回退,錯(cuò)誤仍然存在。
原來(lái)應(yīng)用能正常運(yùn)行,現(xiàn)在不能正常運(yùn)行,監(jiān)控?cái)?shù)據(jù)庫(kù),發(fā)現(xiàn)sql查詢執(zhí)行時(shí)間突然變慢,單獨(dú)執(zhí)行sql,發(fā)現(xiàn)也很慢,到達(dá)百秒級(jí)。
問題定位:在新建worktask表時(shí),改變了表的排序規(guī)則,以至于使和所聯(lián)表的排序規(guī)則不一樣,導(dǎo)致聯(lián)表查詢SQL語(yǔ)句,索引不起作用。
解決方案:(1)將聯(lián)表查詢SQL進(jìn)行拆分;(2)調(diào)整數(shù)據(jù)表的排序規(guī)則,保證所聯(lián)表數(shù)據(jù)表的排序規(guī)則一致。
*************************************************************************************
MySQL中的排序規(guī)則。在新建MySQL數(shù)據(jù)庫(kù)或表的時(shí)候經(jīng)常會(huì)選擇字符集和排序規(guī)則。數(shù)據(jù)庫(kù)用的字符集大家都知道是怎么回事,那排序規(guī)則是什么呢?
排序規(guī)則:是指對(duì)指定字符集下不同字符的比較規(guī)則。其特征有以下幾點(diǎn):
1、 兩個(gè)不同的字符集不能有相同的排序規(guī)則
2、 兩個(gè)字符集有一個(gè)默認(rèn)的排序規(guī)則
3、 有一些常用的命名規(guī)則。如_ci結(jié)尾表示大小寫不敏感(caseinsensitive),_cs表示大小寫敏感(case sensitive),_bin表示二進(jìn)制的比較(binary).
在MySQL數(shù)據(jù)庫(kù)中,可以使用show collation來(lái)查看支持的各種排序呢規(guī)則,我用的是MySQL 5.6.12-log版本的數(shù)據(jù)庫(kù),支持219種排序規(guī)則。
原文:http://www.cnblogs.com/lmmblogs/p/6781430.html
總結(jié)
以上是生活随笔為你收集整理的mysql 回退查询_MYSQL数据库表排序规则不一致导致联表查询,索引不起作用问题...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: merge r语言daframe_R语言
- 下一篇: mysql ldf文件太大_Linux_