0 0

mysql关联查询优化,求解5

我有张表items 300W数据,有张表items_acitivty  50W数据,items用itemId做了主键,items_activity 对activityId,itemId做了联合主键,现在要做个关联查询    select a.itemId from items_activity a , items b where a.itemId = b.itemId
and a.activityId = 1000131946,查询需要500毫秒,请问有没有办法优化啊,感激不敬,leftjoin也试过了,都要500毫秒
2014年3月10日 21:06

9个答案 按时间排序 按投票排序

0 0

感觉索引都没问题,可以试着用一下查询缓存。只是第一次慢些。还有, a.activityId = 1000131946 这个最好写成变量。

2014年3月12日 23:49
0 0

不清楚你要做什么。如果是查a.itemId,直接查表items_activity就行了。估计你是要查item中存在的itemId。那实际上不用关联。查出items中的itemId当做过滤条件就行:
select a.itemId from items_activity a where a.activityId = 1000131946 and
a.itemId in(select itemId from items b )

ps:你原来的sql因为给定了a.activityId = 1000131946所以能用,如果不给定的话会有重复问题,不建议那样写

2014年3月12日 12:12
0 0


  select a.itemId from items_activity a where a.activityId = 1000131946 and a.itemId in(select itemId from items)




按照我的理解,items_activity 表中的itemId 肯定在items表中存在。如果这样,则根本不用联合。直接就是select a.itemId from items_activity a where a.activityId = 1000131946

2014年3月12日 09:34
0 0

有了索引的情况还是不理想,先尝试分区,还有做冗余字段处理

2014年3月11日 22:59
0 0

试试
select a.itemId
from (select itemId from items_activity where activityId = 1000131946) a , items b
where a.itemId = b.itemId

2014年3月11日 11:22
0 0

不好意思没看清, 已经说过索引了。

2014年3月11日 10:45
0 0

索引是怎么建的?

2014年3月11日 10:44
0 0

你是不可以使用pl sql developer(数据库客户端)来分析sql,看sql的遍历数来优化sql

2014年3月11日 09:45
0 0

select a.itemId
from items_activity a , items b
where a.activityId = 1000131946
and a.itemId = b.itemId

2014年3月11日 09:32

相关推荐

    knapsack管理系统基于python (46).zip

    在描述中提到的“刘谦魔术”可能是指这个项目具有某种巧妙或令人惊奇的特性,或者项目的名字与魔术师刘谦有关,但具体关联不明确,可能仅作为项目的一个趣味元素。 【标签】"python" 确认了这个项目是使用Python...

    计算机的毕业论文题目大全.pdf

    - 索引构建与查询优化 11. **遗传算法应用**: - 遗传算法基本原理 - 遗传编码, 适应度函数, 选择, 交叉, 变异操作 - 问题求解实例:中药药对挖掘 12. **网络安全**: - HTTP协议 - 断点续传技术 - 加密...

    大厂面试系列二.pdf

    在实践中优化MySQL,可以考虑诸如合理设计索引、优化查询语句、调整服务器参数、使用缓存、分区表、读写分离等方法。 设置索引但无法使用的情况通常发生在查询条件中有函数或表达式操作,或者在联合索引中,查询...

    基于web的实验室管理系统毕业设计(自动排课功能的实现).zip

    自动排课通常采用启发式或遗传算法来求解优化问题。启发式算法如贪心法、回溯法等,通过设定优先级规则逐步填充课程表。遗传算法模拟生物进化过程,通过选择、交叉和变异操作不断优化排课方案。 5. **冲突检测与...

    计算机毕业论文题目概述.pdf

    - **遗传算法**:优化算法,用于解决复杂问题的求解。 - **错误纠正编码**:如EVENODD码,用于提高数据传输的可靠性。 4. **游戏开发**: - **手机游戏**:包括Beckham Goal、五子棋、俄罗斯方块等,展示了Java...

    基于matlab-光流法的目标追踪及区域框定.zip

    MATLAB虽然不是传统意义上的数据库管理系统,但它提供了诸如`dbconnect`等函数,可以连接到各种关系型数据库,如MySQL、SQLite等,实现数据的读写操作。这对于收集、分析和可视化追踪结果非常有用。 七、系统实现 ...

    机械CADCAM技术第章2.pptx

    关系型数据库如SQL Server、MySQL等广泛应用于工程设计领域,支持高效的数据检索和复杂的查询操作。 总结来说,机械CADCAM技术中的设计数据处理技术涵盖了从数据的数组化、文件化到数据库应用的全过程,这些技术的...

    计算机毕业设计论文题目大全.doc

    遗传算法在中药药对挖掘中用于优化问题求解。网络爬虫用于搜索引擎的构建,从互联网上抓取信息。安全模块的设计涉及到网络安全和隐私保护。 8. **设计与实现**:这些论文题目不仅涵盖了系统设计,还强调了实现,这...

    计算机毕业论文常见题目 (2).docx

    10. **遗传算法**:一种模拟自然选择和遗传过程的优化算法,可用于中药药对挖掘等复杂问题的求解。 11. **CSCW**:Computer-Supported Cooperative Work,计算机支持的协同工作,涉及共享白板等协同工具的设计。 ...

    计算机毕业论文题目大全.pdf

    - 遗传算法:搜索优化方法,用于问题求解。 - 网络爬虫:网页抓取,HTML解析,反反爬策略。 10. **网络安全**: - 端口扫描:TCP/IP协议栈,端口状态探测。 - 加密算法:Misty1,AES,RSA等。 - 网络监听:...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例143 使用线程池优化多线程编程 186 实例144 Object类中线程相关的方法 187 实例145 哲学家就餐问题 189 实例146 使用信号量实现线程同步 190 实例147 使用原子变量实现线程同步 191 实例148 使用事件分配线程...

    百度校园招聘历年经典面试题汇总:C++研发 1

    11. **守护进程**:在后台运行且与终端无关联的进程,通过`fork()`和`setsid()`等函数创建。 12. **条件变量**:线程间同步的一种方式,线程在等待特定条件满足时可以挂起,条件满足时唤醒。 13. **性能优化**:...

Global site tag (gtag.js) - Google Analytics