我有三个表:产品(10k记录),product_attribute(4k记录)和product_value(2m记录). product和product_attribute通过product_value连接.

我想检索特定产品(例如,product_id = 001)及其各自的属性名称和属性值.起初,我试试

SELECT product.product_id, product_attribute.attribute_name, product_value.attribute_value

FROM product, product_attribute, product_value

WHERE product.product_id = 001 AND product.product_id = product_value.product_id AND product_attribute.product_attribute_id IN (SELECT product_value.product_attribute_id FROM product_value WHERE product_value.product_id = 001)

但它非常缓慢.然后我使用INNER JOIN而不是IN

SELECT product.product_id, product_attribute.attribute_name, product_value.attribute_value FROM product

INNER JOIN product_value ON product.product_id = 001 AND product.product_id = product_value.product_id

INNER JOIN product_attribute ON product_attribute.product_attribute_id = product_value.product_attribute_id WHERE product.product_id = 001

但它仍然很慢:查询在36分钟内返回31行!

有没有更好的解决方案来解决这个问题?

解释查询给出:

*************************** 1. row ***********

id: 1

select_type: SIMPLE

table: product_attribute

type: ALL

possible_keys: NULL

key: NULL

key_len: NULL

ref: NULL

rows: 5247

Extra:

*************************** 2. row ***********

id: 1

select_type: SIMPLE

table: product

type: ALL

possible_keys: NULL

key: NULL

key_len: NULL

ref: NULL

rows: 91818

Extra: Using where; Using join buffer

*************************** 3. row ***********

id: 1

select_type: SIMPLE

table: product_value

type: ALL

possible_keys: NULL

key: NULL

key_len: NULL

ref: NULL

rows: 1731016

Extra: Using where; Using join buffer

mysql inner join 慢_即使使用INNER JOIN而不是IN,MySQL查询也非常慢相关推荐

  1. mysql datetime 默认值_老大让我整理下公司内部MySQL使用规范,分享给大家

    作者:白程序员的自习室 链接:https://www.studytime.xin/article/mysql-internal-specifications.html 最近涉及数据库相关操作较多,公司 ...

  2. mysql访问类型最好的_【干货满满】最全的MySQL性能指南(一):选择最佳的数据类型...

    对于 MySQL 数据库来说,好的逻辑表和物理表的规划至关重要,我们需要根据查询语句来针对性地设计 Schema ,没有万能好用的 Schema.一个 denormalized 的 schema 可以 ...

  3. sql join on和不用join区别_图解 SQL 各种 JOIN,太有用了!

    点击上方蓝字关注小姐姐吧从业以来主要在做客户端,用到的数据库都是表结构比较简单的 SQLite,以我那还给老师一大半的 SQL 水平倒也能对付.现在偶尔需要到后台的 SQL Server 里追查一些数 ...

  4. centos mysql导出数据库命令_在centos(linux)下用命令导出mysql数据库数据

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  5. linux按照mysql为何如此简单_手把手教你在Linux下安装MySQL

    在Linux操作系统下,安装MYSQL有两种方式:一种tar安装方式,另外一种是rpm安装方式.这两种安装方式有什么区别呢?尽管我们在Linux下常用tar来压缩/解压缩文件,但MYSQL的tar格式 ...

  6. mysql 绕过权限检查_跳过权限检查,强制修改mysql密码

    windows: 1,停止MYSQL服务,CMD打开DOS窗口,输入 net stop mysql 2,在CMD命令行窗口,进入MYSQL安装目录 比如E:\Program Files\MySQL\M ...

  7. mysql proxy无法连接_客户端无法通过4040端口连接到mysql proxy

    最近在用mysqlproxy,理想情况下是这样的:客户端连接mysqlproxy,然后mysqlproxy根据lua脚本把请求分发到下面的两个mysql服务器,这两个mysql服务器互为主从.但设置好 ...

  8. mysql xp系统时间_【Mysql5.5 XP系统下载】mysql XP系统安装图解

    文件名:[Mysql5.5 XP系统下载]mysql XP系统安装图解 文件介绍: 步骤1:选择安装类型有3种安装类型:Typical(典型安装).Complete(完全安装)和Custom(定制安装 ...

  9. linux使用mysql命令行工具_我使用过的Linux命令之mysql - MySQL客户端命令行工具

    我使用过的Linux命令之mysql - MySQL客户端命令行工具 用途说明 mysql命令是用来连接MySQL服务器并执行用户命令行的工具,如果使用MySQL作为数据库,那这个命令就是经常需要用到 ...

  10. linux mysql解压完_【Linux】CentOS 7.4 安装 MySQL 8.0.12 解压版

    安装环境/工具 1.Linux(CentOS 7.4版) 2.mysql-8.0.12-el7-x86_64.tar.gz 安装步骤 1.下载mysql解压版(mysql-8.0.12-el7-x86 ...

最新文章

  1. 关于outlook2010帐户设置
  2. Spring和Mybatis集成,如何批量insert update?以及一些通用Dao的设想
  3. php重置指针,PHP数组指针函数 current,end,next,prev,reset,each
  4. 「神策 2021 数据驱动大会」杭州站火热开启!
  5. 一些在NLP的面试中提问频率非常高的问题
  6. 深度解密Go语言之sync.map
  7. namenode启动不了以及datanode启动不了的解决办法
  8. java 示例_功能Java示例 第5部分–将I / O移到外部
  9. Android自动化打包工具,利用Jenkins实现Android自动化打包
  10. mysql数字连接,MySQL - 已达到数字连接
  11. android路上的点点滴滴
  12. 异常记录——使用Mybatis报BindingException
  13. [渝粤教育] 西南科技大学 机床电气控制技术 在线考试复习资料
  14. Android的权限声明
  15. 高盛VR/AR报告完整解读版
  16. 【PS/PSD】237款日系小清新文艺唯美梦幻手绘插画分层PSD素材
  17. 【毕业设计】基于springboot的个人博客系统
  18. 如何安装Oracle--新手安装Oracle教程
  19. Android拼图游戏设计(包括游戏算法及数据库设计)
  20. linux切换用户时释放资源,linux 切换用户报Resource temporarily unavailable

热门文章

  1. WordPress免插件公众号回复涨粉(文章设置不同验证码查看隐藏内容)
  2. 商盾商标查询接口缓慢原因
  3. 《画解数据结构》「快速排序」算法教程
  4. opencv打开电脑摄像头
  5. 双核CPU是怎么工作的?
  6. 巴菲特致股东的一封信:1993年
  7. html页面设计成占满屏幕,关于html页面布局
  8. 水壶问题 python实现倒水操作
  9. unity3D-learnin:Priests and Devils
  10. 如何计算两点之间的距离