mysql 语句优化的一些问题,请教!

请教以下情况如何加索引?

第一种:

where id=1   
where id=1 or id=5
where id=1 and aid=2

第二种:(要考虑where左侧的显示项索引吗?)

update tablea set atime=156393938 where id=1

第三种:(以下三种情况效率有差别吗?)

select * from tablea where id > 100
select * from tablea where 1 and id > 100
select * from tablea where id > 100 and 1

第四种:(这种如何加索引,给谁加?)

SELECT COUNT(id) AS count
FROM tablea s
WHERE NOT EXISTS (
        SELECT id
        FROM tableb ss
        WHERE pid = s.id
    )
AND id IN(1,2,3,4,5,664,367)
AND tid = 11
阅读 1.8k
1 个回答

如果 Id是主键, 按主键查, 不需要额外加索引.

其他情况, 如你的第四种情况,可以加ind(tid, id) 索引

EDIT1
说一种并不高效,但能少用内存和增加并发的办法

循环{
     update tablea set atime=156393938 where id=1 limit 200;
}while(影响行数>0)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题