请教一个关于mysql排序 很耗时的问题
表是:CREATE TABLE `pkt_item` (                                  
            `item_id` bigint(20) NOT NULL AUTO_INCREMENT,            
            `kind_id` bigint(20) DEFAULT NULL,                       
            `item_name` varchar(255) NOT NULL,                       
            `name_number` int(11) NOT NULL,                          
            `picture` varchar(255) NOT NULL,                         
            `description` text,                                      
            `looknum` bigint(20) DEFAULT '0',                        
            `lastlooktime` datetime DEFAULT NULL,                    
            PRIMARY KEY (`item_id`),                                 
            UNIQUE KEY `Index_1` (`item_id`),                        
            KEY `Index_3` (`lastlooktime`),                          
            KEY `Index_2` (`kind_id`),                               
            KEY `ItemName_Index` (`item_name`),                      
            KEY `LookNum_Index` (`looknum`),                         
            KEY `Index_NameNumber` (`name_number`)                   
          ) ENGINE=MyISAM AUTO_INCREMENT=43213 DEFAULT CHARSET=utf8  我的语句是:
select distinct pkt_item.item_id as itemId,
pkt_item.kind_id as kindId,
                        pkt_item.item_name as itemName,
                        pkt_item.name_number as storeNumberfrom pkt_item 
where item_name like '%a%' order by itemName desc
去掉排序后,速度要快很多
我要达到的目的是要排序 ,也要速度。

解决方案 »

  1.   

    加上一个 (item_name ,itemName) 的索引。
      

  2.   

    上一个 (item_name ,itemName) 的索引这是什么意思?
    我的itme_name不是已经有了索引了吗?为什么还要加呢?
      

  3.   

    把itme_name 的索引去掉,或者强制不使用这个的索引。itemName创建索引。
      

  4.   


    item_name like '%a%'  基本上什么索引都用不上了。没什么好办法。
      

  5.   

    把itme_name 的索引去掉,或者强制不使用这个的索引。itemName创建索引。你这个到底是什么意思,我不懂。itemName是itme_name的别名,索引去掉再建有意义吗?
      

  6.   

    where item_name like '%a%' order by item_name desc直接这样,不要用别名,然后强制用 `ItemName_Index` 
      

  7.   

    别名有可能会影响到MySQL对索引进行的SQL语句的优化select * from `pkt_item`  froce index(`ItemName_Index` )
    where item_name like '%a%' order by item_name desc试一下这个,这已经是最优化的了。