您的位置:首页 > 数据库 > MySQL

关于一次线上事故总结,以及对于mysql索引的总结(序言一)

2016-10-30 20:47 555 查看
最近在做项目中,对原有表的索引进行了更改,之前的唯一索引,为了删除唯一性,要保持这2个字断的索引。所以先删了之前的,全部都没有了,再增加了一个联合索引,然后

就以为ok了,结果导致主站访问的速度很慢达到了6s,这个不能忍,领导发现后排查出来是关于我把索引没有健全导致的。所以以此来完整的学习下mysql索引的实现。

ALTER TABLE  PN_TicketGroup add index `IX_SHOP_TICKETCATEGORY` (shopId,ticketCategoryId);

这是我删除之前唯一索引后加的,自己以为会是2个字断查询都会走索引,结果不是。现初步了解到b+树对于索引的实现里面是把这2个字断当作整体来建的,所以用2个字断来查

询会走索引,使用第一个字断也会走索引,但是如果使用第二个字断就不会走索引,导致全表扫描,应为该表是商品表,很大!每次查询都全表扫,要是访问大点估计mysql io应

该就是满的,导致mysql就直接挂了。后果很严重幸亏早点发现,所以想系统的学习下。

本片只是开始,建议大家对于一个知识点还是要系统的进行学习,不然就等着犯错吧。

截下来就是学习总结的部分了,先买了本高性能mysq 来进修下。l
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 索引 事故