廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 5047 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
aa 手機 會員卡 葫蘆墩家族
個人文章 個人相簿 個人日記 個人地圖 個人商品
特殊貢獻獎 社區建設獎
頭銜:            
站長
級別: 站長 該用戶目前不上站
推文 x1964 鮮花 x5260
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[SQL][討論] MySQL 5.1.26 LIMIT 奇怪的現象
最近把論壇轉換為 utf-8 ,並把 MySQL 升級為 5.1.26
發現了一個奇怪的問題,就是在讀私人訊息時特別的慢,我本來以為是因為私人訊息的索引鍵是文字欄位造成的,所以就特別加了數字索引鍵,改了一以是有一點改善,不過在搜尋私人訊息時,一樣是變的很慢

後來發現一個奇怪的現象,就是如果搜尋結果超過二頁以上就很快,如果不滿一頁就很慢

我就試著把 LIMIT 的指令拿掉,竟然就變的很快,後來只好加上一個判斷,只要不滿一頁的就不加 LIMIT,而超過一頁的才加
這樣搜尋就變的一樣快了

複製程式
$query = $db->query("SELECT mid,msgfrom,msgto,msgfromid,msgtoid,ifnew,title,mdate FROM pw_msg WHERE msgtoid='$winduid' AND type='rebox' $sqlwhere ORDER BY mdate DESC".($count>$db_perpage?" LIMIT $start,$db_perpage":''));

目前還不了解這個問題的原因,只能先這樣處理,而我找了一下全部的程式,有很多地方要改,看了都傻眼了.. 表情


獻花 x0 回到頂端 [樓 主] From:臺灣新世紀資通股份有限公司 | Posted:2008-08-28 10:34 |
aa 手機 會員卡 葫蘆墩家族
個人文章 個人相簿 個人日記 個人地圖 個人商品
特殊貢獻獎 社區建設獎
頭銜:            
站長
級別: 站長 該用戶目前不上站
推文 x1964 鮮花 x5260
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

今天又發現了一個奇怪的問題

複製程式
SELECT ifnew FROM pw_msg WHERE msgtoid='$winduid' AND ifnew='1' AND type='rebox' ORDER BY mdate DESC LIMIT 1

以上這行要執行 8秒以上,本來以為是 LIMIT 的問題,後來把 LIMIT 拿掉,不過還是一樣,後來再把 ORDER BY mdate DESC,就不到 1秒完成,我確定有對 mdate 做 INDEX

其實這行只是要判斷有沒有新的訊息,所以後來我改了一下語法

複製程式
SELECT COUNT(*) AS msgcount FROM pw_msg WHERE msgtoid='$winduid' AND ifnew='1' AND type='rebox'

這樣可以達到相同的效果,而且速度恨快..


獻花 x0 回到頂端 [1 樓] From:臺灣新世紀資通股份有限公司 | Posted:2008-08-29 15:25 |
chris710908 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
知名人士
級別: 知名人士 該用戶目前不上站
推文 x15 鮮花 x128
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

之前轉換成功的時候~讀取私人訊息的確慢很多

不過現在都很快了~沒有感覺異樣,感謝aa站長的努力!

所以將big5轉成UTF-8的或升級到mysql 5

會產生很多問題嗎?還是說PW系統的複雜性所以才會這樣?


獻花 x0 回到頂端 [2 樓] From: | Posted:2008-08-30 01:46 |
aa 手機 會員卡 葫蘆墩家族
個人文章 個人相簿 個人日記 個人地圖 個人商品
特殊貢獻獎 社區建設獎
頭銜:            
站長
級別: 站長 該用戶目前不上站
推文 x1964 鮮花 x5260
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
Re:
下面是引用chris710908於2008-08-30 01:46發表的 :
之前轉換成功的時候~讀取私人訊息的確慢很多

不過現在都很快了~沒有感覺異樣,感謝aa站長的努力!

所以將big5轉成UTF-8的或升級到mysql 5

會產生很多問題嗎?還是說PW系統的複雜性所以才會這樣?

應該說把 big5 轉成 UTF-8 就會有很多問題,不管是那一套系統
而升級到 MySQL 5.1.x 又會遇到其他的問題,也許改換 MySQL 5.0.x 就沒那個問題


獻花 x0 回到頂端 [3 樓] From:臺灣新世紀資通股份有限公司 | Posted:2008-08-31 18:11 |
chris710908 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
知名人士
級別: 知名人士 該用戶目前不上站
推文 x15 鮮花 x128
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

所以若是以後要製作網頁
做好把網頁語系預設成utf-8嗎?
感覺很多許蓋功的問題都可以解決

不過如果語系改成utf-8~那資料庫mysql也要改成utf-8才能閱讀資料吧
感覺用很久big5的語法習慣了....要改成utf-8還需要有點勇氣 表情


獻花 x0 回到頂端 [4 樓] From: | Posted:2008-09-01 19:31 |
aa 手機 會員卡 葫蘆墩家族
個人文章 個人相簿 個人日記 個人地圖 個人商品
特殊貢獻獎 社區建設獎
頭銜:            
站長
級別: 站長 該用戶目前不上站
推文 x1964 鮮花 x5260
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
Re:
下面是引用chris710908於2008-09-01 19:31發表的 :
所以若是以後要製作網頁
做好把網頁語系預設成utf-8嗎?
感覺很多許蓋功的問題都可以解決

不過如果語系改成utf-8~那資料庫mysql也要改成utf-8才能閱讀資料吧
感覺用很久big5的語法習慣了....要改成utf-8還需要有點勇氣 表情

如果是要架新的系統,當然就選 UTF-8 ,如果是舊系統,要轉,真的要有很大的勇氣
最近又發現一個 MySQL 5.1.26 問題,就是如果用 LIMIT 去抓指定的資料,如果過濾的資料是空的時,他會再用全表掃描一次,所以就造成 mysql 滿載,目前正為此問題所苦...


獻花 x0 回到頂端 [5 樓] From:臺灣新世紀資通股份有限公司 | Posted:2008-09-02 00:36 |
月光 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
社區建設獎
頭銜:看我代替月亮懲罰你!看我代替月亮懲罰你!
版主
級別: 版主 該用戶目前不上站
版區: Unix-like, 網站架設
推文 x42 鮮花 x565
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
Re:
下面是引用chris710908於2008-09-01 19:31發表的 :
所以若是以後要製作網頁
做好把網頁語系預設成utf-8嗎?
感覺很多許蓋功的問題都可以解決

不過如果語系改成utf-8~那資料庫mysql也要改成utf-8才能閱讀資料吧
感覺用很久big5的語法習慣了....要改成utf-8還需要有點勇氣 表情

我論壇也下海了的確是需要很大的勇氣及役力而且Mysql版本不同碰到的問題都不相同...所以講真的轉換後我十分後悔因為UTF-8不但會造成流量變大,且由於big5每個中文字為2字元而utf-8為3字元因此很多項這類加格式後儲存
複製程式
a:2:{s:7:"options";a:8:{i:0;a:3:{i:0;s:12:"傳統傻瓜相機";i:1;i:0;i:2;a:0:{}}i:1;a:3:{i:0;s:12:"傳統單眼相機";i:1;i:0;i:2;a:0:{}}i:2;a:3:{i:0;s:22:"拍立得或隨拍即丟型相機";i:1;i:1;i:2;a:1:{i:1;s:8:"magic_aa";}}i:3;a:3:{i:0;s:12:"數位傻瓜相機";i:1;i:0;i:2;a:0:{}}i:4;a:3:{i:0;s:16:"數位半專業型相機";i:1;i:1;i:2;a:1:{i:1;s:8:"magic_aa";}}i:5;a:3:{i:0;s:12:"數位單眼相機";i:1;i:0;i:2;a:0:{}}i:6;a:3:{i:0;s:18:"手機 or DV附設相機";i:1;i:1;i:2;a:1:{i:0;s:8:"magic_aa";}}i:7;a:3:{i:0;s:31:"特殊尺寸相機《120或更古式相機》";i:1;i:0;i:2;a:0:{}}}s:8:"multiple";a:2:{i:0;s:1:"1";i:1;s:1:"8";}}
方式的都要在寫程式去重算s:字元數因此...後悔也來不及了因為要轉回去更難big5好像會碰到更多問題 表情
所以不建議輕易嘗試,不過還好我碰到的問題好像沒有aa老大來的多由於我論壇Mysql版本為4.0.27查了一些資料他是呼並不元全支援utf-8且沒有校隊編碼功能因此碰上php.ini開啟

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On

時Mysql會將\直接存進資料庫中所以很多文字都亂七八糟的所以我現在在 global.php 中的 Char_cv(); 接加上 $msg = stripslashes($msg); 來過濾多出來的 \ 就好了 表情


[ 此文章被月光在2008-09-02 02:57重新編輯 ]


月光論壇
http://bbs.dj...com/


===================================
贊助本站 -- 刊登廣告 -- 物超所值虛擬主機租用
獻花 x0 回到頂端 [6 樓] From:臺灣中華電信HINET | Posted:2008-09-02 02:43 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.048275 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言