SELECT
g.goods_id,
g.type_id,
g.user_id,
g.productname,
g.img,
g.intro,
g.attr,
u.companyname,
u.enloginname,
u.userid
FROM
site_goods g FORCE,
ucenter_member u
WHERE
( `type_id` IN ( '13', '5634', '5674', '5675', '5676', '5677', '5678', '5679', '5680', '5681', '5635', '5639', '5795',
'5796', '5797', '5798', '5799', '5800', '5645', '5992', '5993', '5994', '5995', '5996', '6035', '6036', '6037', '5646', '5726',
'5727', '5899', '5900', '5964', '5648', '5652', '5653', '5724', '5801', '5803', '5804', '5654', '5728', '5988', '5990', '5991',
'6012', '6013', '6014', '5655', '5659', '5940', '6074', '6075', '6076', '6077', '6078', '6080', '5660', '5774', '5775', '5776',
'5777', '5778', '5779', '5780', '5781', '5963', '5661', '5782', '5783', '5784', '5785', '5786', '5662', '5787', '5788', '5789'
, '5790', '5791', '5792', '5941', '5663', '5638', '5673', '5793', '5794', '5989', '5664', '5665', '5667', '5668', '5671', '5683',
'5688', '5691', '5692', '5696', '5697', '5698', '5760', '5761', '5762', '5693', '5694', '5763', '6003', '6050', '5695', '5699', '5700', '5701', '5702', '5703', '5758', '5759', '6008', '5705', '5706', '5707', '5708', '5709', '5764', '5895', '6004', '6038', '5710', '5711', '5713', '5765', '5766', '5834', '5850', '5851', '5852', '5714', '6066', '6067', '6068', '6069', '6070', '6071', '6072', '6073', '5716', '11406', '11407', '11408', '11409', '11410', '11411', '11412', '11413', '11414', '11415', '11416', '11417', '11418', '11419', '11420', '11421', '5723', '5725', '5729', '5730', '5802', '5715', '5942', '5943', '5944', '5946', '5947', '5913', '5914', '5915', '5916', '5917', '5918', '5919', '5920', '5930', '5997', '6000', '5945', '6001', '6002', '6005', '6006', '11278', '6007', '5965', '6079', '6009', '5650', '5656', '6011', '6010', '5636', '5642', '5643', '5644', '5658', '5704', '6015', '6016', '6017', '6018', '6019', '6020', '6021', '6022', '6023', '6024', '6025', '6026', '6027', '6028', '6029', '6030', '6031', '6032', '6033', '6081', '6082', '6083', '6084', '6085', '6086', '5657', '5666', '5670', '6039', '6087', '6088', '6089', '11267', '11268', '11269', '11270', '11271', '11272', '11273', '11274', '11275', '11276', '11277', '11279', '11280', '11281', '11282', '11283', '11284', '11285', '11286', '11287', '11288', '11289', '11290', '11291', '11292', '11293', '11294', '11295', '11296', '11297', '11298', '11299', '11300', '11301', '11302', '11303', '11304', '11305', '11306', '11307', '11308', '11309', '11310', '11311', '11312', '11313', '11314', '11315', '11316', '11317', '11318', '11319', '11320', '11321', '11322', '11323', '11324', '11325', '11326', '11327', '11328', '11329', '11330', '11331', '11332', '11333', '11334', '11335', '11336', '11337', '11338', '11339', '11340', '11341', '11342', '11343', '11344', '11345', '11346', '11347', '11348', '11349', '11350', '11351', '11352', '11353', '11354', '11355', '11356', '11357', '11358', '11359', '11360', '11361', '11362', '11363', '11364', '11365', '11366', '11367', '11368', '11369', '11370', '11371', '11372', '11373', '11374', '11375', '11376', '11377', '11378', '11379', '11380', '11381', '11382', '11383', '11384', '11385', '11386', '11387', '11388', '11389', '11390', '11391', '11392', '11393', '11394', '11395', '11396', '11397', '11398', '11399', '11400', '11401', '11402', '11403', '11404', '11405', '11423', '11424', '11425', '11426', '11427', '11428', '11429', '11430', '11431', '11432', '11433', '11434', '11435', '11436', '11437', '11438', '11439', '11440', '11441', '11442', '11443', '11444', '11445', '11446', '11447', '11448', '11449', '11450', '11451' )
AND (
g.user_id = u.userid
AND g.is_up = 'true'
AND g.checks = 1
AND g.disabled = 'false'
AND u.disabled = 'false'
AND u.checkid = 2
)
LIMIT 50

  上面的sql运行几十秒,因为数据有点多,然后我用explan。

走的索引是ind_is_up

然后查看了is_up的分组多少数据,其实全都是true,所以这里的 ind_is_up其实没什么意思。

所以我们这里要重新去让sql走索引。FORCE INDEX(uni_type_id), (强制索引)

修改sql中的from块的语句

FROM
site_goods g FORCE INDEX(uni_type_id),
ucenter_member u

为什么选uni_type_id这个是根据实际情况来的,因为上面的sql中where中索引都不是很好,就type_id 分组的比较多。

这样语句就快很了。来看看我们现在的explan

这里走的索引就是uni_type了。

总结: mysql运行时,只会使用一个索引,但是mysql选择的索引也会不是我们理想的索引,这时候就需要我们来强制设置索引。

sql查询慢优化的更多相关文章

  1. SQL 查询性能优化----解决书签查找

    先来看看什么是书签查找: 当优化器所选择的非聚簇索引只包含查询请求的一部分字段时,就需要一个查找(lookup)来检索其他字段来满足请求.对一个有聚簇索引的表来说是一个键查找(key lookup), ...

  2. mysql经纬度查询并且计算2KM范围内附近用户的sql查询性能优化实例教程

    之前很傻很天真地以为无非就是逐个计算距离,然后比较出来就行了,然后当碰到访问用户很多,而且数据库中经纬度信息很多的时候,计算量的迅速增长,能让服务器完全傻逼掉,还是老前辈的经验比我们丰富,给了我很大的 ...

  3. Mysql常用30种SQL查询语句优化方法

    出处:http://www.antscode.com/article/12deee70111da0c4.html 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使 ...

  4. MySQL 常用30种SQL查询语句优化方法

    1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉 ...

  5. Sql 查询语句优化

    sql查询很慢,很多时候并不是数据量大,而是sql语法使用不正确,本文讲述了基础语法使用,避免一些不必要的坑. explain select * from user;--查询执行时间 目录 Sql 优 ...

  6. sql查询语句优化

    http://www.cnblogs.com/dubing/archive/2011/12/09/2278090.html 最近公司来一个非常虎的dba  10几年的经验 这里就称之为蔡老师吧 在征得 ...

  7. 开发日记(项目中SQL查询的优化)

    今天发现自己之前写的一些SQL查询在执行效率方面非常不理想,于是尝试做了些改进. 需求为查询国地税表和税源表中,国税有而税源没有的条目数,之前的查询如下: SELECT COUNT(NAME)     ...

  8. 一次千万级别的SQL查询简单优化体验

    背景:从两张有关联的表查询数据,A表数据量1400万,B表数据量8000万.A与B通过ID逻辑关联,没有实际的外键.B表是后来扩展出来的. 问题:根据某个ID查询时超时,运行时跑不出结果. 原因:使用 ...

  9. sql查询语句优化需要注意的几点

    为了获得稳定的执行性能,SQL语句越简单越好.对复杂的SQL语句,要设法对之进行简化. 常见的简化规则如下:   1)不要有超过5个以上的表连接(JOIN) 2)考虑使用临时表或表变量存放中间结果. ...

  10. SQL查询语句优化的实用方法

    查询语句的优化是SQL效率优化的一个方式,可以通过优化sql语句来尽量使用已有的索引,避免全表扫描,从而提高查询效率.最近在对项目中的一些sql进行优化,总结整理了一些方法. 1.在表中建立索引,优先 ...

随机推荐

  1. 使用roslyn代替MSBuild完成解决方案编译

    原本我是使用批处理调用 MSBuild 完成解决方案编译的,新版的 MSBuild 在 Visual Studio 2015 会自带安装. 当然在Visual Studio 2015 中,MSBuil ...

  2. 使用图片视频展示插件blueimp Gallery改造网站的视频图片展示

    在很多情况下,我们网站可能会展示我们的产品图片.以及教程视频等内容,结合一个比较好的图片.视频展示插件,能够使得我们的站点更加方便使用,也更加酷炫,在Github上有很多相关的处理插件可以找来使用,有 ...

  3. EXCEL中多级分类汇总空白字段填充

    使用场景,多级分类汇总后,在汇总的字段中显示空白,这样对我们直接取值做表带来十分不更(假像有5000条记录,1000条汇总项) 相关技术,INDIRECT函数,单元格定位功能. 在数据区域外任意一个单 ...

  4. Asp.Net MVC 从数据库生成代码(包括页面)

    项目需要,数据库已经设计完成,需要生成相关的数据访问代码和页面. 参考:http://www.tracefact.net/asp-net/aspnetmvc-model-part1.aspx http ...

  5. Java事务处理

    Java事务处理总结     一.什么是Java事务   通常的观念认为,事务仅与数据库相关.   事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(co ...

  6. Linux Cmd Tool 系列之—alias

    The alias cmd list your current aliases. For example : alias Use alias to shorten a long cmd in curr ...

  7. 一分钟搞定AlloyTouch图片轮播组件

    轮播图也涉及到触摸和触摸反馈,同时,AlloyTouch可以把惯性运动打开或者关闭,并且设置min和max为运动区域,超出会自动回弹. 除了一般的竖向滚动,AlloyTouch也可以支持横向滚动,甚至 ...

  8. Service是什么?Service又不是什么?

    在Android王国中,Service是一个劳动模范,总是默默的在后台运行,无怨无悔,且总是干最脏最累的活,比如下载文件,倾听音乐,网络操作等这些耗时的操作,所以我们请尊重的叫他一声:"劳模 ...

  9. Android WebView 302斗争之旅

    一.背景 越来越多的业务接入,项目内多多少少会出现几个H5页面,只是单纯的提供WebView容器接入H5页面根本满足不了需求,他们需要登录态,需要制定协议控制Native的导航栏,或者需要JsBrid ...

  10. JavaScript 函数

    JavaScript 函数 介绍:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块.嗯,就像Java中封装的方法一样. 将脚本编写为函数,就可以避免页面载入时执行该脚本. 函数包含着一些代码 ...