mysql中10万条记录查询慢的解决办法? 5

我一个表中有接近10万条记录,查询非常慢。请高手看看我的SQL怎么写能提高查询效率。我用的是mysql+ibatis,以下为代码:<selectid="wareListS... 我一个表中有接近10万条记录,查询非常慢。请高手看看我的SQL怎么写能提高查询效率。我用的是mysql+ibatis,以下为代码:
<select id="wareListSelect" parameterClass="com.goldf.ware.ibatis.bean.WareListSelect" resultMap="wareIndexResult">
select ware_id, ware_name, ware_type, ware_custom1, ware_custom2, ware_no, ware_price,ware_number,ware_remark, ware_author, ware_datetime from ware_detail
where ware_type=#wareType.id#
<dynamic>
<isNotEmpty prepend="and" property="baseType1">
<![CDATA[ ware_custom1 = #baseType1.id# ]]>
</isNotEmpty>
<isNotEmpty prepend="and" property="baseType2">
<![CDATA[ ware_custom2 = #baseType2.id# ]]>
</isNotEmpty>
<isNotEmpty prepend="and" property="author">
<![CDATA[ ware_author = #author# ]]>
</isNotEmpty>
<isNotEmpty prepend="and" property="keyWords">
<![CDATA[ ware_name like CONCAT('%', #keyWords#, '%') ]]>
</isNotEmpty>
<isNotEmpty property="orderBy">
<![CDATA[ order by $orderBy$ ]]>
</isNotEmpty>
<isNotEmpty property="descOrAsc">
<![CDATA[ $descOrAsc$ ]]>
</isNotEmpty>
</dynamic>
limit #begin#, #pageRows#
</select>
用索引效率会不会高点,如何建索引?
展开
 我来答
13272564825
推荐于2017-05-20 · 超过18用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:43万
展开全部
十万条数据已经够多了,通常最好的办法就是创建索引,创建索引的命令: CREATE INDEX index_name ON table_name(index_col_name,...);
index_name:这是索引的创建名称,你自己命一个名称。
table_name:这是数据表名称,你的应该是ware_detail。
index_col_name:为哪一列数据创建索引,这个项目很重要,你的可以写ware_type,请确保这行是不是数字类型,因为数据类型比字符类型查询速度更快,最好将这一行设置一个固定长度,这样查询速度更快,如果这个行数据长度能短一点更好,越短就意味着查询速度越快。
小狂中E
2014-01-08 · TA获得超过1418个赞
知道大有可为答主
回答量:1514
采纳率:66%
帮助的人:1031万
展开全部
如果ware_type选择性比较高(即每个ware_type的记录在总记录数占比比较小)的话,可以考虑在ware_type上建索引
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式