0
我有一个MySQL问题。我必须优化我的网站上的一些查询。其中一个我已经做了,但还有一些我没有你的帮助就无法解决。MySQL优化查询
我有一个名为“新闻”表:
CREATE TABLE IF NOT EXISTS `news` (
`id` int(10) NOT NULL auto_increment,
`edited` smallint(1) NOT NULL default '0',
`site` varchar(30) default NULL,
`foreign_id` varchar(25) default NULL,
`title` varchar(255) NOT NULL,
`text` text NOT NULL,
`image` varchar(255) default NULL,
`horizontal` smallint(1) NOT NULL,
`image_author` varchar(255) default NULL,
`text_author` varchar(255) default NULL,
`lang` varchar(3) NOT NULL,
`link` varchar(255) NOT NULL,
`date` date NOT NULL,
`redirect` smallint(1) NOT NULL,
`parent` int(10) NOT NULL,
`views` int(5) NOT NULL,
`status` smallint(1) NOT NULL,
PRIMARY KEY (`id`),
KEY `lang` (`lang`,`status`),
KEY `date` (`date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=47122 ;
,你可以看到我有两个指标:“郎”和“日期”
我已经尝试了不同的指标,这个的一些组合一个产生了我最好的结果......不幸的是只在我的本地计算机上。在服务器上,我仍然有不好的结果。我想说的是数据库是一样的。
查询:
SELECT id FROM news WHERE lang = 'en' AND STATUS =1 ORDER BY DATE DESC LIMIT 0, 10
本地主机解释:
+----+-------------+-------+-------+---------------+------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+-------+---------------+------+---------+------+------+-------------+ | 1 | SIMPLE | news | index | lang | date | 3 | NULL | 23 | Using where | +----+-------------+-------+-------+---------------+------+---------+------+------+-------------+
服务器解释:
+----+-------------+-------+------+---------------+--------+---------+-------------+-------+-----------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+--------+---------+-------------+-------+-----------------------------+ | 1 | SIMPLE | news | ref | status | status | 13 | const,const | 15840 | Using where; Using filesort | +----+-------------+-------+------+---------------+--------+---------+-------------+-------+-----------------------------+
我已经看过了很多其他类似的话题,但不幸的是我无法找到任何解决方案在我的服务器上工作。我会很高兴在这里从你这里解释一些解释,所以我可以优化我的其他查询。
谢谢!
由于戈登,结果现在是以下几种:1个\t \t SIMPLE新闻\t \t参考状态\t \t状态13 \t常量,常量\t \t 15020使用其中;使用索引。行也很多,但现在正在使用where和index。这更好,对吧? –
@VeskoGeorgiev。 。 。是的,我认为这样更好。它跑得快吗? –
我无法确定它是否更快,但页面变得非常频繁,并导致大量的处理器时间,因为我共享了托管。所以我希望这会减少那个时间。 :) –