查询10000多行时PHP / MySQL速度慢,但快速查询9000

时间:2015-02-23 22:22:16

标签: php mysql codeigniter

我有一个包含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

0 个答案:

没有答案