mysql inner join 慢_即使使用INNER JOIN而不是IN,MySQL查询也非常慢
我有三个表:产品(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查询也非常慢相关推荐
- mysql datetime 默认值_老大让我整理下公司内部MySQL使用规范,分享给大家
作者:白程序员的自习室 链接:https://www.studytime.xin/article/mysql-internal-specifications.html 最近涉及数据库相关操作较多,公司 ...
- mysql访问类型最好的_【干货满满】最全的MySQL性能指南(一):选择最佳的数据类型...
对于 MySQL 数据库来说,好的逻辑表和物理表的规划至关重要,我们需要根据查询语句来针对性地设计 Schema ,没有万能好用的 Schema.一个 denormalized 的 schema 可以 ...
- sql join on和不用join区别_图解 SQL 各种 JOIN,太有用了!
点击上方蓝字关注小姐姐吧从业以来主要在做客户端,用到的数据库都是表结构比较简单的 SQLite,以我那还给老师一大半的 SQL 水平倒也能对付.现在偶尔需要到后台的 SQL Server 里追查一些数 ...
- centos mysql导出数据库命令_在centos(linux)下用命令导出mysql数据库数据
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- linux按照mysql为何如此简单_手把手教你在Linux下安装MySQL
在Linux操作系统下,安装MYSQL有两种方式:一种tar安装方式,另外一种是rpm安装方式.这两种安装方式有什么区别呢?尽管我们在Linux下常用tar来压缩/解压缩文件,但MYSQL的tar格式 ...
- mysql 绕过权限检查_跳过权限检查,强制修改mysql密码
windows: 1,停止MYSQL服务,CMD打开DOS窗口,输入 net stop mysql 2,在CMD命令行窗口,进入MYSQL安装目录 比如E:\Program Files\MySQL\M ...
- mysql proxy无法连接_客户端无法通过4040端口连接到mysql proxy
最近在用mysqlproxy,理想情况下是这样的:客户端连接mysqlproxy,然后mysqlproxy根据lua脚本把请求分发到下面的两个mysql服务器,这两个mysql服务器互为主从.但设置好 ...
- mysql xp系统时间_【Mysql5.5 XP系统下载】mysql XP系统安装图解
文件名:[Mysql5.5 XP系统下载]mysql XP系统安装图解 文件介绍: 步骤1:选择安装类型有3种安装类型:Typical(典型安装).Complete(完全安装)和Custom(定制安装 ...
- linux使用mysql命令行工具_我使用过的Linux命令之mysql - MySQL客户端命令行工具
我使用过的Linux命令之mysql - MySQL客户端命令行工具 用途说明 mysql命令是用来连接MySQL服务器并执行用户命令行的工具,如果使用MySQL作为数据库,那这个命令就是经常需要用到 ...
- 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 ...
最新文章
- 关于outlook2010帐户设置
- Spring和Mybatis集成,如何批量insert update?以及一些通用Dao的设想
- php重置指针,PHP数组指针函数 current,end,next,prev,reset,each
- 「神策 2021 数据驱动大会」杭州站火热开启!
- 一些在NLP的面试中提问频率非常高的问题
- 深度解密Go语言之sync.map
- namenode启动不了以及datanode启动不了的解决办法
- java 示例_功能Java示例 第5部分–将I / O移到外部
- Android自动化打包工具,利用Jenkins实现Android自动化打包
- mysql数字连接,MySQL - 已达到数字连接
- android路上的点点滴滴
- 异常记录——使用Mybatis报BindingException
- [渝粤教育] 西南科技大学 机床电气控制技术 在线考试复习资料
- Android的权限声明
- 高盛VR/AR报告完整解读版
- 【PS/PSD】237款日系小清新文艺唯美梦幻手绘插画分层PSD素材
- 【毕业设计】基于springboot的个人博客系统
- 如何安装Oracle--新手安装Oracle教程
- Android拼图游戏设计(包括游戏算法及数据库设计)
- linux切换用户时释放资源,linux 切换用户报Resource temporarily unavailable