YiluPHP
这家伙很懒,什么都没有留下...

经验 PHP调优过程

浏览数 198406
  1. comment 评论表有10个字段,InnoDB引擎,目前记录数为 1845723(184万),评论需要分页,经常根据内容查询其评论的总条数,使用以下语句查询
    SELECT COUNT(*) AS tp_count FROM `comment` WHERE ( media_id="149191906955614" AND status=1 ) LIMIT 1
    没有索引时需要1.3 - 1.9秒,把media_id和status建组合索引(normal,Hash)后查询仅需要0.16-0.6秒

    media_id 在此表中为varchar(17)类型,与其它表不一致,导致以下查询很慢,在1.4-1.9秒之间,改成bigint(20)后,查询时间是0.018-0.052秒
    SELECT COUNT(*) AS tp_count FROM `comment` WHERE ( media_id=14888674154956245 AND status=1 ) LIMIT 1

  2. comment_reply 评论回复表有6个字段,InnoDB引擎,目前记录数为 615692(61万),
    SELECT * FROM `comment_reply` WHERE ( comment_id=232 AND status=1 )
    没有索引时需要0.43 - 0.883秒,把comment_id和status建组合索引(normal,Hash)后查询仅需要0.015-0.058秒
  3. shared_square 已分享内容表有12个字段,InnoDB引擎,目前记录数为 302884(30万),需要分页显示指定用户的已分享内容列表:
    select count(1) num from shared_square where uuid=304 and status=1
    没有索引时需要0.261 - 0.272秒,把uuid和status建组合索引(normal,Hash)后查询仅需要0.0141-0.0639秒

我来说说