mysql longtext查询慢_select中的longtext使查询速度极慢

我有一个结构如下的普通平台

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中运行正常但需要花费大量时间。

如何更快地执行此查询并快速获取行?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 可以通过如下两种方式来查找查询: 1. 使用查询日志 MySQL 提供了查询日志(Slow Query Log)功能,可以记录执行时间超过指定阈值的 SQL 查询语句。可以通过以下步骤启用查询日志: - 编辑 MySQL 配置文件 my.cnf,在 [mysqld] 段添加以下配置: ``` slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 2 # 执行时间超过 2 秒的查询会被记录 ``` - 重启 MySQL 服务使配置生效。 - 打开查询日志文件,查看其记录的查询语句。 2. 使用 Performance Schema Performance Schema 是 MySQL 5.5 后引入的新功能,用于收集 MySQL 数据库服务器的性能统计信息。可以通过以下步骤使用 Performance Schema 来查找查询: - 确认 Performance Schema 已经启用。可以使用以下命令来检查: ``` SHOW VARIABLES LIKE 'performance_schema'; ``` 如果返回结果 performance_schema 的值为 ON,则表示 Performance Schema 已经启用。 - 执行以下查询语句,查找执行时间超过指定阈值的查询: ``` SELECT * FROM performance_schema.events_statements_summary_by_digest WHERE digest_text LIKE '%YOUR_QUERY%' AND SUM_TIMER_WAIT > YOUR_THRESHOLD; ``` 其 YOUR_QUERY 为待查找的 SQL 查询语句,YOUR_THRESHOLD 为执行时间的阈值,单位是纳秒。 以上两种方式都可以帮助 DBA 查找 MySQL 查询,建议在生产环境使用查询日志进行查询分析和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值