广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 5059 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为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.083687 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言