这表是dede的
数据一多查询很慢
显示行 0 - 29 (30 总计, 查询花费 1.8115 秒)SELECT * 
FROM `dede_archives` 
WHERE `typeid` =16
AND `arcrank` > -1
ORDER BY click DESC 
LIMIT 0 , 30表结构--
-- 表的结构 `dede_archives`
--CREATE TABLE IF NOT EXISTS `dede_archives` (
  `id` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `typeid` smallint(5) unsigned NOT NULL DEFAULT '0',
  `typeid2` varchar(90) NOT NULL DEFAULT '0',
  `sortrank` int(10) unsigned NOT NULL DEFAULT '0',
  `flag` set('c','h','p','f','s','j','a','b') DEFAULT NULL,
  `ismake` smallint(6) NOT NULL DEFAULT '0',
  `channel` smallint(6) NOT NULL DEFAULT '1',
  `arcrank` smallint(6) NOT NULL DEFAULT '0',
  `click` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `money` smallint(6) NOT NULL DEFAULT '0',
  `title` char(60) NOT NULL DEFAULT '',
  `shorttitle` char(36) NOT NULL DEFAULT '',
  `color` char(7) NOT NULL DEFAULT '',
  `writer` char(20) NOT NULL DEFAULT '',
  `source` char(30) NOT NULL DEFAULT '',
  `litpic` char(60) NOT NULL DEFAULT '',
  `pubdate` int(10) unsigned NOT NULL DEFAULT '0',
  `senddate` int(10) unsigned NOT NULL DEFAULT '0',
  `mid` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `keywords` char(30) NOT NULL DEFAULT '',
  `lastpost` int(10) unsigned NOT NULL DEFAULT '0',
  `scores` mediumint(8) NOT NULL DEFAULT '0',
  `goodpost` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `badpost` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `notpost` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `description` varchar(255) NOT NULL DEFAULT '',
  `filename` varchar(40) NOT NULL DEFAULT '',
  `dutyadmin` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `tackid` int(10) NOT NULL DEFAULT '0',
  `cate2` smallint(5) DEFAULT NULL,
  `mtype` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `cate1` smallint(5) DEFAULT NULL,
  `cate3` smallint(5) DEFAULT NULL,
  `cate4` smallint(5) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `sortrank` (`sortrank`),
  KEY `mainindex` (`arcrank`,`typeid`,`channel`,`flag`,`mid`),
  KEY `lastpost` (`lastpost`,`scores`,`goodpost`,`badpost`,`notpost`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk;--
-- 转存表中的数据 `dede_archives`
--INSERT INTO `dede_archives` (`id`, `typeid`, `typeid2`, `sortrank`, `flag`, `ismake`, `channel`, `arcrank`, `click`, `money`, `title`, `shorttitle`, `color`, `writer`, `source`, `litpic`, `pubdate`, `senddate`, `mid`, `keywords`, `lastpost`, `scores`, `goodpost`, `badpost`, `notpost`, `description`, `filename`, `dutyadmin`, `tackid`, `cate2`, `mtype`, `cate1`, `cate3`, `cate4`) VALUES
(66633, 58, '0', 1272851094, 'p', 1, 1, 0, 570, 0, '4款超简单盘发 出游轻松上镜', '', '', 'aa', '未知', '/uploads/100504/48-100504230125101.jpg', 1272851094, 1272851314, 44, '', 0, 0, 0, 0, 0, '还没来得及剪一头好看的新发型,五一已经到来,那五一怎样才能上镜呢?别着急,小编就来支招,推荐4款最易打理有轻松上镜的盘发,让你的五一假期光彩照人! NO.1 气质侧边盘发 适合发量: 中等发量 适合发长: 中长发 适合 脸 型: 瓜子脸、鹅蛋脸、圆脸 发', '', 48, 0, NULL, 0, NULL, NULL, NULL),
(66635, 39, '0', 1272851334, 'p', 1, 1, 0, 166, 0, '实用小诀窍!解决日常美睫六大困惑', '', '', 'aa', '未知', '/uploads/allimg/100503/44_05030951523620.jpg', 1272851334, 1272851510, 44, '', 0, 0, 0, 0, 0, '我应该选择什么样的基底液?当一天结束夜幕降临之前,面对脱落的睫毛膏,要怎么办?真想让自己的睫毛再长一点?诸如此类,MM们对睫毛的要求和烦恼常常是数之不尽的。 这次,小编要为大家解答很多MM从不知晓的6大疑惑。让我们一起拥有让人羡慕不已的美丽睫毛', '', 44, 0, NULL, 0, NULL, NULL, NULL),
(66636, 379, '0', 1272851706, 'p', 1, 1, 0, 353, 0, '做个“好色女” 突击男人的心!', '', '', 'bb', '未知', '/uploads/100503/43-10050312000N30.jpg', 1272851706, 1272851900, 43, '', 0, 0, 0, 0, 0, '如果大家认为“好色”二字只是用来形容男人的话,那真的是老土。作为一个正常的成年人,无论男人还是女人,我们都有着非常出色的好色天份,这是上帝给予我们的最基本的权利。', '', 43, 0, NULL, 0, NULL, NULL, NULL),
(66660, 429, '0', 1272857210, 'p', 1, 1, 0, 352, 0, '胸部UP 打造S型身材密招', '', '', 'cc', '未知', '/uploads/100503/45-100503150G4343.jpg', 1272857210, 1272859148, 45, '', 0, 0, 0, 0, 0, '不用忍受手术的痛苦,你也可以拥有S型身材。下面是一些比较有效又安全的丰胸法,你也试试吧! 丰胸饮食 维他命C:葡萄、西柚等,防止胸部变形。 维他命E:芹菜、核桃等,有助胸部发育。 维他命A:椰菜及葵花籽油等,有利激素分泌。 维他命B:牛肉、牛奶及猪', '', 45, 0, NULL, 0, NULL, NULL, NULL),
(66637, 240, '0', 1272853281, 'p', 1, 1, 0, 140, 0, '脸部瑜伽操 化妆水2步轻松大脸变小脸', '', '', 'cc', '未知', '/uploads/allimg/100503/45_0503102305Z59.jpg', 1272853281, 1272853384, 45, '', 0, 0, 0, 0, 0, '导语:为了提升脸部线条、消除法令纹、解决双下巴,使肌肤变得又弹又紧又亮,mm们赶快跟着做简单的脸部瑜伽吧。 化妆水拍打,加速血液循环消水肿 第一步:化妆水拍打,加速血液循环消水肿 早晚使用化妆水顺着肌肤的纹理,采取由下而上、由内往外轻拍方式,使', '', 45, 0, NULL, 0, NULL, NULL, NULL),
(66638, 468, '0', 1272852444, 'p', 1, 1, 0, 223, 0, '世博会亚洲广场室外文艺精彩演出', '', '', 'bb', '未知', '/uploads/100503/43-100503123251463.jpg', 1272852444, 1272853434, 43, '', 0, 0, 0, 0, 0, '举世瞩目的2010上海世博会开幕式在黄浦江畔世博园区盛大举行。来自全球的189个国家和57个国际组织实际参展,历时184天的世界“大聚会”将由此展开。', '', 43, 0, NULL, 0, NULL, NULL, NULL),
(66639, 243, '0', 1272853564, 'p', 1, 1, 0, 115, 0, '独家揭秘:白领一族上班饮食瘦身法', '', '', 'cc', '未知', '/uploads/allimg/100503/45_0503102J94627.jpg', 1272853564, 1272853668, 45, '', 0, 0, 0, 0, 0, '导语:午餐时间,你是随便在公司门口或超商买个便当打发吗?如果是,那就得小心养出一个肥肚肚了,因为便当不但营养不均衡,热量更是惊人得高,特别是很多炸排骨、炸鸡排便当,1个热量可能就达8、900大卡,摇6个小时的呼拉圈都消不掉,恐怖哦。 上班族吃面食', '', 45, 0, NULL, 0, NULL, NULL, NULL),
(66640, 243, '0', 1272853817, 'p', 1, 1, 0, 106, 0, '7种食物让你轻松拥有精致小V脸', '', '', 'cc', '未知', '/uploads/allimg/100503/45_050310335Q619.jpg', 1272853817, 1272854029, 45, '', 0, 0, 0, 0, 0, '导读:你想不需要通过发型或者脸部化妆来修饰脸部吗?那么在平日的食物挑选上,就应该多多注意摄取含高钾质的食材,因为钾质能够促进体内代谢功能,排除因为不当饮食或生活习惯所产生的脸部肿胀问题。 想要吃出精致小V脸的你,可不要错过以下推荐的食材及瘦', '', 45, 0, NULL, 0, NULL, NULL, NULL),
(66641, 243, '0', 1272854166, 'p', 1, 1, 0, 162, 0, '土豆的瘦身功效 你知道多少', '', '', 'cc', '未知', '/uploads/allimg/100503/45_0503103K95462.jpg', 1272854166, 1272854278, 45, '', 0, 0, 0, 0, 0, '导语:土豆是一种粮菜两用的蔬菜。以前它是不起眼的东西,现如今它是营养学家青睐的蔬菜明星,并被认为是世界上最伟大的的食物之一。吃土豆不仅能减肥,还有美容功效呢。 土豆让瘦人变胖 胖人变瘦 土豆能减肥 吃土豆不必担心脂肪过剩,因为它只含0.1%的脂肪', '', 45, 0, NULL, 0, NULL, NULL, NULL)数据就导出一点了。
=========================================================
arcrank 值有4种值  都是数字
-2
-1
0
1
typeid 是分类有二十多个值 都是数字

解决方案 »

  1.   

    贴出你的explain FROM `dede_archives` 
    WHERE `typeid` =16
    AND `arcrank` > -1
    ORDER BY click DESC 
    LIMIT 0 , 30;show index from dede_archives;
      

  2.   


    mysql> EXPLAIN SELECT *
        -> FROM `dede_archives`
        -> WHERE `typeid` =16
        -> AND `arcrank` > -1
        -> ORDER BY click DESC
        -> LIMIT 0 , 30;
    +----+-------------+---------------+-------+---------------+-----------+---------+------+-------+-----------------------------+
    | id | select_type | table         | type  | possible_keys | key       | key_len | ref  | rows  | Extra                       |
    +----+-------------+---------------+-------+---------------+-----------+---------+------+-------+-----------------------------+
    |  1 | SIMPLE      | dede_archives | range | mainindex     | mainindex | 2       | NULL | 50041 | Using where; Using filesort |
    +----+-------------+---------------+-------+---------------+-----------+---------+------+-------+-----------------------------+
    1 row in set (0.00 sec)
    mysql> show index from dede_archives;
    +---------------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
    | Table         | Non_unique | Key_name  | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
    +---------------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
    | dede_archives |          0 | PRIMARY   |            1 | id          | A         |       50160 |     NULL | NULL   |      | BTREE      |         |
    | dede_archives |          1 | sortrank  |            1 | sortrank    | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
    | dede_archives |          1 | mainindex |            1 | arcrank     | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
    | dede_archives |          1 | mainindex |            2 | typeid      | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
    | dede_archives |          1 | mainindex |            3 | channel     | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
    | dede_archives |          1 | mainindex |            4 | flag        | A         |        NULL |     NULL | NULL   | YES  | BTREE      |         |
    | dede_archives |          1 | mainindex |            5 | mid         | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
    | dede_archives |          1 | lastpost  |            1 | lastpost    | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
    | dede_archives |          1 | lastpost  |            2 | scores      | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
    | dede_archives |          1 | lastpost  |            3 | goodpost    | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
    | dede_archives |          1 | lastpost  |            4 | badpost     | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
    | dede_archives |          1 | lastpost  |            5 | notpost     | A         |        NULL |     NULL | NULL   |      | BTREE      |         |
    +---------------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
    12 rows in set (0.02 sec)
      

  3.   

    创建 click 的索引
    然后强制使用这个索引。
      

  4.   

    显示行 0 - 29 (30 总计, 查询花费 0.1832 秒)SELECT * 
    FROM `dede_archives` 
    WHERE `typeid` =16
    ORDER BY click DESC 
    LIMIT 0 , 30这样查询也不是很慢而这样
    显示行 0 - 29 (30 总计, 查询花费 1.7730 秒)SELECT * 
    FROM `dede_archives` 
    WHERE `arcrank` > -1
    ORDER BY click DESC 
    LIMIT 0 , 30就很慢
    我想可能出现问题在`arcrank` > -1上面click点击率 一直写入自加 不知道索引好不好
      

  5.   

    建索引后显示行 0 - 29 (30 总计, 查询花费 0.2371 秒)
    SELECT * 
    FROM `dede_archives` 
    WHERE `typeid` =16
    AND `arcrank` > -1
    ORDER BY click DESC 
    LIMIT 0 , 30明显快了很多不知道
    click是点击率 一直写入自加 不知道索引好不好!
    望高手解释一下可行不!
      

  6.   

    非常感谢!
    ---------------------
    http://www.phpzy.com