您的位置:首页 > 数据库

sql 优化

2016-05-11 11:57 393 查看
SELECT
g.*, p.product_id AS product_id,
p.specs AS product_specs,
b. NAME AS brand_name,
t. NAME AS type_name,
c. NAME AS cat_name

FROM
product p

LEFT JOIN  goods g ON p.goods_id = g.goods_id

LEFT JOIN  goods_cat c ON g.cat_id = c.cat_id

LEFT JOIN  brand b ON g.brand_id = b.brand_id

AND b.disabled = 0

LEFT JOIN es_goods_type t ON g.type_id = t.type_id

WHERE
g.market_enable = 1

AND g.disabled = 0

AND g.sn LIKE 'SAB2107839%'

ORDER BY

goods_id DESC

1,查询条件sn加索引   create index idx_product  on     product (sn);



2,like 'sn%'    不能出现 like '%sn%' , 否则sn加的索引就不起作用



3,最好不要出现 g.*,需要什么字段,查询出来



4,做更新语句的时候,最好保持sql的原子性,不要查询出来再加减,拼接。考虑到并发情况下会有脏数据出现,

议写成 :

直接加减:

 update cart set num=num+? where  product_id=? (整型,例如购物车的数据等)

直接拼接:

String sql="update product p set p.name=concat(p.name,'"+spec+"') where  p.goods_id>=400108    and p.goods_id<=403855 and  p.sn='"+sn+"'";




5,sql替换

UPDATe goods SET `intro`=REPLACE(`intro`,'pl201604/beyotime','pl201605/beyotime')  WHERE  goods_id >=673951 AND goods_id <= 674885 




sql拼接

update es_product  set sn=concat(sn,'-',specs) where  goods_id >=680138  and  goods_id<=691447
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql 优化