mysql longtext 查询_mysql中longtext存在大量数据时,会导致查询很慢?
一个表,1.5w条数据,字段: id,name,content,last_update_time
id,自定义主键
name,varchar类型
content是longtext类型,
last_update_time为datetime类型,不为空
content当中是文本和代码等,平均长度在20k+。
case1:
select id, name from t order by last_update_time limit 10000, 10
当content当中有大量的文本时,case1的效率极慢。
及时给 last_update_time 加上btree索引, 效率有提升,但是依然慢
把content一列删掉,效率很高。毫秒级别。
使用explain:
有content时结果:
mysql> explain select id, name, last_update_time from t order by last_update_time desc limit 11120, 11;
+----+-------------+-----------+-------+---------------+----------------------+---------+------+-------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+-------+---------------+----------------------+---------+------+-------+-------+
| 1 | SIMPLE | t | index | NULL | idx_last_update_time | 8 | NULL | 11131 | NULL |
+----+-------------+-----------+-------+---------------+----------------------+---------+------+-------+-------+
无content列的结果:
+----+-------------+----------------+------+---------------+------+---------+------+-------+----------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+----------------+------+---------------+------+---------+------+-------+----------------+
| 1 | SIMPLE | t2 | ALL | NULL | NULL | NULL | NULL | 15544 | Using filesort |
+----+-------------+----------------+------+---------------+------+---------+------+-------+----------------+
1 row in set (0.00 sec)
请大神请教,是什么问题?该怎么优化?
无content的时候,查询走的是idx_last_update_time,我猜测这个索引中包含了id,name字段,因此仅通过索引就可以获取到所需的数据,因此速度很快。
有content的时候,因为有limit 10000的语句,且无法从索引中获取content字段的内容,因此采用的全表扫描的方法。
建议改写sql语句,让数据库的执行计划更充分使用索引,假设id是主键:
select id, name, content
from t
where id in (
select id
from t
order by last_update_time limit 10000, 10
)
content当中是文本和代码等,平均长度在20k+。
这种应该建立全文索引(FUNLLTEXT INDEX)吧。简单的索引不适合这种超长文本的字段。
我觉得,主要跟你的分页查询的方式有关,limit 10000,10 这个意思是扫描满足条件的10010条数据,扔掉前面的10000行,返回最后的10行,在加上你的表中有个,非常大的字段,这样必然增加数据库查询的i/o时间,
查询优化你可以参照 @邢爱明 的
SELECT id,title,content FROM items WHERE id IN (SELECT id FROM items ORDER BY last_update_time limit 10000, 10);
还有一种优化方式:你可以记录最后的last_update_time 每次最后的值。然后查询可以这样写:
SELECT * FROM items WHERE last_update_time > “最后记录的值” order by last_update_time limit 0,10;
这两种方式你可以执行看看那个效率高,希望对你有帮助。。
mysql longtext 查询_mysql中longtext存在大量数据时,会导致查询很慢?相关推荐
- mysql char(36)_MySQL中char(36)被认为是GUID导致的BUG及解决方案
有时候在使用Toad或在程序中,偶尔会遇到如下的错误: System.FormatException GUID 应包含带 4 个短划线的 32 位数(xxxxxxxx-xxxx-xxxx-xxxx-x ...
- mysql 快速初始化_MySQL中的批量初始化数据的对比测试(r12笔记第71天)
一直以来对于MySQL的存储过程性能还是颇有微词的,说实话够慢的.有时候想做一些对比测试,存储过程初始化几万条数据都得好一会儿,这功夫Oracle类似的测试早都做完了,今天就赶个晚班车,把这个没做完的 ...
- mysql五大子句_MySQL的查询语句中可以使用以下哪个子句来表示分组查询
[多选题]人类行为遗传学工作者倾向于把人的行为遗传分为哪几类 [填空题]MySQL的连接操作包括内连接.( )和交叉连接. [判断题]社会生活类尤其是人文风光类纪录片的解说则多用文学. 散文手法, 既 ...
- mysql range用法_MySQL中Explain的用法总结(详细)
本篇文章给大家带来的内容是关于MySQL中Explain的用法总结(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 执行计划(query Execution plan) 语法e ...
- mysql 全文索引 权重_MySQL中的全文索引
之前曾经发表了一篇关于SQL Server全文索引的文章.现在将MySQL全文索引的配置过程记录一下. Step1:创建Student表 CREATE TABLE `student` ( `id` I ...
- mysql regexp 特殊字符_MySQL中REGEXP正则表达式使用大全
REGEXP在mysql是用来执行正则表达式的一个函数 像php中的preg之类的函数了,regexp正则函数如果只是简单的查询使用like即可,但复杂的还是需要使用regexp了,下面我们来看看. ...
- mysql启动触发器_MYSQL中禁用/启动触发器
在使用MYSQL过程中,经常会使用到触发器,但是有时使用不当会造成一些麻烦.有没有一种办法可以控制触发器的调用呢? 触发器顾名思义就是数据库在一定的调条件自动调用的SQL语句,触发器拒绝了人工调用的过 ...
- 数据库数据变大会导致查询慢_是什么导致数据库变慢?
数据库数据变大会导致查询慢 Why is my database so slow? This query used to be so much faster. Why does it take so ...
- php mysql 时间戳查询_mysql中时间查询函数(包括时间戳)
mysql中时间查询函数(包括时间戳) 这些函数都是MySQL自带的,可以直接使用在PHP写的MySQL查询语句中哦 1-CURDATE()或CURRENT_DATE()和CURTIME()或CURR ...
最新文章
- R语言计算dataframe数据列中各分类的计数(类似pandas value_counts函数功能)
- python使用字典格式化字符串-4.2.3Python下字典的格式化字符串
- Interview:算法岗位面试—10.23下午—上海某科技公司算法岗位(偏机器学习算法,上市)技术面试之比赛积累、项目经验、个人未来发展
- SAP CRM产品主数据明细页面无法打开的调试步骤
- 如何 方法内指令重排 进制_谈谈指令重排
- msyql 1062
- Monte Carlo Rendering De-noising
- ie升级后必须重启计算机吗,微软迟到的补丁:升级到IE9将无需重启计算机
- 【手游逆向】初探Unity3d+il2cpp.so网游修改新手教程篇[内附所有相关工具下载地址和说明介绍】
- AI开发者大会:2020年7月3日和7月4日CSDN重磅举办《百万人学AI》大会议程及其对应视频回放链接
- 计算机老师感言,信息技术教师感言
- 一、初识GVR ---- Android VR视频/Google VR for Android /VR Pano/VR Video
- 个人怎么开发APP?APP开发全流程解析!
- 【傲腾观察室】英特尔® 傲腾™技术,助力金融行业数据库价值迸发!
- 星星之火-31:WCDMA码分多址复用与解复用的数学计算案例
- typora + smss / github / 又拍云 / 七牛云 图床
- 如何彻底删除ELTIMA的vspd(虚拟串口)
- “Git 是我用过最笨重的软件”!喷完 C++ 喷 Git,这位 Azure CTO 到底何许人也?...
- centos7 搭建ngnix+vsftp服务器
- AVAudioRecorder 录音