三个表,Media(媒体表),Tags(标签表),MediaTagRef(中间表)
三个表数量分别是:Media 5w,Tags 5w,MediaTagRef 80w
现在需要做关键字过滤查找媒体,Media.name LIKE '%1%' OR Tags LIKE '%1%'SELECT
count(*)
FROM
(
SELECT
Media.id,Media.name
FROM
mc_media Media
LEFT JOIN mc_media_tag_ref TagRef ON TagRef.object_id = Media.id
LEFT JOIN mc_tags Tags ON Tags.id = TagRef.tag_id
WHERE Tags.name LIKE '%1%' OR Media.name LIKE '%1%'
#LIMIT 20
) c结果:651455
受影响的行: 0
时间: 7.113s返回结果需要7秒多,这个有点接受不了,是那里写错了吗?就算把like去了也要7秒。
三个表数量分别是:Media 5w,Tags 5w,MediaTagRef 80w
现在需要做关键字过滤查找媒体,Media.name LIKE '%1%' OR Tags LIKE '%1%'SELECT
count(*)
FROM
(
SELECT
Media.id,Media.name
FROM
mc_media Media
LEFT JOIN mc_media_tag_ref TagRef ON TagRef.object_id = Media.id
LEFT JOIN mc_tags Tags ON Tags.id = TagRef.tag_id
WHERE Tags.name LIKE '%1%' OR Media.name LIKE '%1%'
#LIMIT 20
) c结果:651455
受影响的行: 0
时间: 7.113s返回结果需要7秒多,这个有点接受不了,是那里写错了吗?就算把like去了也要7秒。
解决方案 »
- mysql如何检测字段里重复的内容,并且保留一条,其余清空?
- 编码求助???
- binlog文件如何做mysql的恢复和还原
- 重启发现死活找不到 mysql manager
- MYSQL 1067出错
- 多表查询问题!!!!!!!!!
- 谁知道mysql数据库怎么限制每个用户的使用空间啊?
- 新安装mysql5.1后无法登陆
- 几十、几万、几千万的基础商品数据如何维护和加快查询速度
- MFC ADO 以 MySQL 为驱动插入数据,1个连接1秒最多插入多少条?我写的最多2000条左右
- 我想请教一个mysql 版权的问题
- MySQL创建触发程序使用delete时出现unknown Colum ‘dno’in‘old’
Media.id,
Media. NAME
FROM
mc_media Media
LEFT JOIN mc_media_tag_ref TagRef ON TagRef.object_id = Media.id
LEFT JOIN mc_tags Tags ON Tags.id = TagRef.tag_id
WHERE
Tags. NAME LIKE '%1%'
OR Media. NAME LIKE '%1%'
LIMIT 20
这样查询100ms以内,但无法知道总数,做不了分页。
还请大家帮忙看看!!
不知道这种做法有什么弊端?