【发布时间】:2013-09-05 08:32:20
【问题描述】:
如何提高使用 PHP 查询 mysql 表的速度?
因为截至目前我有 152000 条记录,每次加载时我的页面都不会打开。只是一个白屏。我还添加了一些索引,但它并没有增强我的表查询。 这是我的表结构:
CREATE TABLE `items` (
`itemid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`itemcode` VARCHAR(100) NULL DEFAULT NULL COLLATE 'utf8_bin',
`itemname` VARCHAR(500) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`itemdesc` VARCHAR(512) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`itembrand` VARCHAR(128) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`itemunit` VARCHAR(45) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`salescatid` INT(10) UNSIGNED NULL DEFAULT NULL,
`salescatname` VARCHAR(128) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`entrydate` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`itemid`),
INDEX `itemcode` (`itemcode`),
INDEX `itemname` (`itemname`),
INDEX `itemdesc` (`itemdesc`),
INDEX `itembrand` (`itembrand`),
INDEX `itemunit` (`itemunit`),
INDEX `salescatid` (`salescatid`),
INDEX `salescatname` (`salescatname`),
INDEX `entrydate` (`entrydate`)
)
COLLATE='utf8_bin'
ENGINE=MyISAM
AUTO_INCREMENT=157329;
加载缓慢的示例查询
SELECT itemid,itemcode,itemname FROM items ORDER BY itemid DESC
【问题讨论】:
-
在您的问题中添加您尝试运行的典型查询
-
请向我们展示您描述为有问题的代码。您是否打开了错误报告?
-
好的,我更新了我的问题。我有错误报告,但我的浏览器不会告诉我错误。只是一个空白页。但如果我减少我的数据,它将打开。
-
该查询不应该很慢,它是对索引主键的简单选择。您确定页面的数据库部分速度很慢而不是脚本吗?在这种情况下,空白屏幕可能是 PHP 内存不足,因为您似乎正在将整个表加载到内存中。修复/检查您的错误日志。
-
好的,如果是 PHP 问题,我该怎么做?如何在 PHP 中增加内存大小?
标签: mysql sql database performance database-performance