PHP停止响应

时间:2014-08-07 14:12:25

标签: php mysql intellij-idea

我有一个小的(100行,5列)表格,完整显示控制面板功能。使用IntelliJ测试开发时,它会响应初始请求,但永远不会完成执行,因此从不提供任何内容。如果我将PHP文件部署到我的本地Web服务器,它会毫不犹豫地提供相同的内容。有时,当我加载不使用数据库访问的控制面板的部分时,它加载它就好了(尽管很慢)。我已经在我的cli / php.ini中提升了请求允许的最大内存,并且还增加了IntelliJ可用的内存。我的idea64.vmoptions如下:

-Xms128m
-Xmx3G
-XX:MaxPermSize=750m
-XX:ReservedCodeCacheSize=200m
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-Dawt.useSystemAAFontSettings=lcd

如果我转储表,它会再次加载页面,所以我认为问题与IntelliJ允许php使用多少内存有关,但我对于要查找的内容感到非常难过。据我所知,该表唯一的特殊之处在于它使用了非常大的主键列。表结构如下:

CREATE TABLE IF NOT EXISTS `links` (
`url`        VARCHAR(767)               NOT NULL,
`link_group` INT(10) UNSIGNED           NOT NULL,
`isActive`   TINYINT(1)                 NOT NULL DEFAULT '1',
`hammer`     TINYINT(1)                 NOT NULL DEFAULT '0',
PRIMARY KEY (`url`),
KEY `group` (`link_group`)
)
ENGINE =InnoDB
DEFAULT CHARSET =utf8mb4,
ROW_FORMAT = COMPRESSED;

压缩行格式以允许所述大主键。如果不解决它,我该如何处理,找到原因?

我试着听从彼得的建议,但没有用。我开始认为这可能只是IntelliJ在我的情况下无法正常服务PHP。新表结构如下:

CREATE TABLE IF NOT EXISTS `links` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`url` varchar(767) NOT NULL,
`link_group` int(10) unsigned NOT NULL,
`isActive` tinyint(1) NOT NULL DEFAULT '1',
`hammer` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `url` (`url`),
KEY `group` (`link_group`),
FULLTEXT KEY `url_2` (`url`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPRESSED AUTO_INCREMENT=1 ;

为了清楚起见,MySQL性能似乎并不好。 SELECT * FROM链接在0.0005秒内执行。

1 个答案:

答案 0 :(得分:0)

您可能想要重新创建该表。您的表定义可能会导致不可预测的行为。

尝试使用TEXT字段的url数据类型。另外,使用它作为PRIMARY键并不好笑。使用id字段作为主键,然后将unique index添加到url字段(如果需要)。

相关问题