1
我通过CodeIngiter尝试进行查询上尽可能快地通过搜索在包含大约记录1.200.000表...如何快速非常大的数据库
我已经创建的名称,标签3项指标和类别
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for videos
-- ----------------------------
DROP TABLE IF EXISTS `videos`;
CREATE TABLE `videos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`name_url` varchar(255) DEFAULT NULL,
`categories` varchar(255) DEFAULT NULL,
`embed` tinytext,
`description` text,
`tags` varchar(255) DEFAULT NULL,
`hd` smallint(6) DEFAULT '0',
`views` int(11) NOT NULL DEFAULT '0',
`likes` int(11) DEFAULT '0',
`dislikes` int(11) DEFAULT '0',
`cover` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`,`name`),
FULLTEXT KEY `mega_search` (`name`,`tags`,`categories`)
) ENGINE=MyISAM AUTO_INCREMENT=1273355 DEFAULT CHARSET=latin1;
但响应太长=> 总执行时间7.0999此查询
SELECT *
FROM `videos`
WHERE `categories` LIKE '%Reality%' ESCAPE '!'
ORDER BY `id` DESC
LIMIT 20
'LIKE '%现实%''不能使用索引,并会在大大慢规模。请参阅https://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html,或者使用类似于Lucene的索引。 – ceejayoz
120万行几乎不能称为一个非常大的数据库 – Lamak
@Lamak当你在做'LIKE'%Reality%''时,任何事情都是大型数据库:-p – ceejayoz