免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: yyxxzz
打印 上一主题 下一主题

帮我看一下,我的show global status 有什么问题 [复制链接]

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
11 [报告]
发表于 2009-12-18 11:38 |只看该作者
这要从你的业务层面去修改了,从你的语句来看用户应该是点到了第24页了吧?
一般从设计角度来说应当避免诱使用去去点这么后面的页。

分享一个分页优化的ppt吧,应该会对你有帮助

谈分页优化.pdf (270.68 KB, 下载次数: 73)

论坛徽章:
0
12 [报告]
发表于 2009-12-18 11:43 |只看该作者
原帖由 cenalulu 于 2009-12-18 11:38 发表
这要从你的业务层面去修改了,从你的语句来看用户应该是点到了第24页了吧?
一般从设计角度来说应当避免诱使用去去点这么后面的页。

分享一个分页优化的ppt吧,应该会对你有帮助

360432


其实不是给用户点的,为了google,baidu 的爬虫,太后面页码用户一般不会点
为了seo 嘿嘿

论坛徽章:
0
13 [报告]
发表于 2009-12-18 11:47 |只看该作者
原帖由 cenalulu 于 2009-12-18 11:38 发表
这要从你的业务层面去修改了,从你的语句来看用户应该是点到了第24页了吧?
一般从设计角度来说应当避免诱使用去去点这么后面的页。

分享一个分页优化的ppt吧,应该会对你有帮助

360432


昏啊,我刚才在终端运行了一下这条语句
mysql> select iid,title,pic_path,price from tb_goods where nick='vivizone' order by lmsn desc limit 480,20;
Empty set (1.67 sec)

但是我
mysql> explain select iid,title,pic_path,price from tb_goods where nick='vivizone' order by lmsn desc limit 480,20 \G;
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: tb_goods
         type: ref
possible_keys: nickgood
          key: nickgood
      key_len: 32
          ref: const
         rows: 806
        Extra: Using where
1 row in set (0.00 sec)

为什么rows是806?

论坛徽章:
0
14 [报告]
发表于 2009-12-18 12:53 |只看该作者
mysql要查这么多行,才能返回值。虽然返回的值为空。

key_buffer_size是不是低了

而且lock也有点高,换innodb引擎吧

[ 本帖最后由 justin033 于 2009-12-18 12:57 编辑 ]

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
15 [报告]
发表于 2009-12-18 13:26 |只看该作者
原帖由 yyxxzz 于 2009-12-18 11:47 发表


昏啊,我刚才在终端运行了一下这条语句
mysql> select iid,title,pic_path,price from tb_goods where nick='vivizone' order by lmsn desc limit 480,20;
Empty set (1.67 sec)

但是我
mysql> expla ...


应该是分页导致的

论坛徽章:
0
16 [报告]
发表于 2009-12-18 13:40 |只看该作者
原帖由 justin033 于 2009-12-18 12:53 发表
mysql要查这么多行,才能返回值。虽然返回的值为空。

key_buffer_size是不是低了

而且lock也有点高,换innodb引擎吧


key_buffer_size现在是512MB
单表 520w行

论坛徽章:
0
17 [报告]
发表于 2009-12-18 13:47 |只看该作者
原帖由 ruochen 于 2009-12-18 13:26 发表


应该是分页导致的


什么意思?分页能导致这样?

论坛徽章:
0
18 [报告]
发表于 2009-12-18 13:49 |只看该作者

回复 #16 yyxxzz 的帖子

业务允许的话,加大key_buffer_size值吧。

主要的大表是用什么引擎

论坛徽章:
0
19 [报告]
发表于 2009-12-18 13:51 |只看该作者

回复 #15 ruochen 的帖子

7.2.14. MySQL如何优化LIMIT
在一些情况中,当你使用LIMIT row_count而不使用HAVING时,MySQL将以不同方式处理查询。

·         如果你用LIMIT只选择一些行,当MySQL选择做完整的表扫描时,它将在一些情况下使用索引。

·         如果你使用LIMIT row_count与ORDER BY,MySQL一旦找到了排序结果的第一个row_count行,将结束排序而不是排序整个表。如果使用索引,将很快。如果必须进行文件排序(filesort),必须选择所有匹配查询没有LIMIT子句的行,并且在确定已经找到第1个row_count行前,必须对它们的大部分进行排序。在任何一种情况下,一旦找到了行,则不需要再排序结果的其它部分,并且MySQL不再进行排序。

·         当结合LIMIT row_count和DISTINCT时,MySQL一旦找到row_count个唯一的行,它将停止。

·         在一些情况下,GROUP BY能通过顺序读取键(或在键上做排序)来解决,然后计算摘要直到关键字的值改变。在这种情况下,LIMIT row_count将不计算任何不必要的GROUP BY值。

·         只要MySQL已经发送了需要的行数到客户,它将放弃查询,除非你正使用SQL_CALC_FOUND_ROWS。

·         LIMIT 0将总是快速返回一个空集合。这对检查查询的有效性是有用的。当使用MySQL API时,它也可以用来得到结果列的列类型。(该技巧在MySQL Monitor中不工作,只显示Empty set;应使用SHOW COLUMNS或DESCRIBE)。

·         当服务器使用临时表来进行查询时,使用LIMIT row_count子句来计算需要多少空间。



摘自手册

论坛徽章:
0
20 [报告]
发表于 2009-12-18 14:08 |只看该作者
原帖由 justin033 于 2009-12-18 13:49 发表
业务允许的话,加大key_buffer_size值吧。

主要的大表是用什么引擎

myisam ,
我也想加大key_buffer_size啊,关键 是服务器上内存 才2G,我已经设置了512,机器上还有java的爬虫
apache,tomcat ,等等 程序 没有太多的内存可用的
我通过top 看 一般CPU空闲都是90%以上,内存 基本上没什么可用了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP