我有一个包含14000行的表,以及一个用PHP / CodeIgniter编写的应用程序,用Active Record查询该表。
当我设置限制为9000时,检索行需要大约5秒钟,但如果限制为10000或更多,则需要超过30-45秒。
我完全没有设置Apache和MySQL,我怀疑更改一些参数这10000多行查询将更快执行。
它可能是什么?
以下是表架构:
CREATE TABLE `accesos` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`usuario` bigint(20) NOT NULL,
`base_datos` bigint(20) DEFAULT NULL,
`fecha` date NOT NULL,
`hora` time NOT NULL,
`ip` varchar(75) NOT NULL,
`navegador` varchar(200) NOT NULL,
`erroneo` tinyint(1) NOT NULL DEFAULT '0',
`audi_f_c` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`audi_f_a` timestamp NULL DEFAULT NULL,
`audi_u` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `usuario` (`usuario`),
KEY `base_datos` (`base_datos`),
KEY `audi_u` (`audi_u`),
KEY `fecha` (`fecha`,`hora`),
CONSTRAINT `accesos_ibfk_1` FOREIGN KEY (`usuario`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `accesos_ibfk_2` FOREIGN KEY (`base_datos`) REFERENCES `bases_datos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `accesos_ibfk_3` FOREIGN KEY (`audi_u`) REFERENCES `usuarios` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=14189 DEFAULT CHARSET=latin1