我有一个结构如下的普通平台
CREATE TABLE `oc_pipeline_logging` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`source` TEXT,
`comments` TEXT,
`data` LONGTEXT,
`query` TEXT,
`date_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`ip` VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MYISAM AUTO_INCREMENT=20 DEFAULT CHARSET=latin1
在这个表中,我基本上记录了我在代码中的所有错误。
现在,上表中的data
列定义为longtext
,目前我在此列中拥有的数据,每条记录的数据几乎为32Mb size
。
所以现在当我使用普通的选择查询时,它花了很多时间来获取结果。
例如: -
SELECT * FROM oc_pipeline_logging limit 10
事实上,当我在终端中运行上述查询时,我收到的错误
mysql> SELECT COMMENTs,DATA FROM oc_pipeline_logging WHERE id = 18;
ERROR 2020 (HY000): Got packet bigger than 'max_allowed_packet' bytes
但是在sqlYog中运行正常但需要花费大量时间。 如何更快地执行此查询并快速获取行?
答案 0 :(得分:0)
我正在尝试同样的方式来获得这种类型的错误。
但是可以有一个解决方案来增加my.ini
中的内存限制。
max_allowed_packet=2048M
您可以相应地更改限制,希望这可以解决问题。