mysql 细节

主要是面试经验总结和一些反思。

http://www.dongchangbin.net.cn/?p=643

delete等的区别



1:in和exist的终结,结论是,子查询表小用in,子查询表达用exist。这个问题真正说清楚的,在这里。

2:where和having有什么区别?这不是扯淡吗?group 和having就行了,别的都用where?where里面不能有别名,having可以有,select user_name,sub(数学成绩-语文成绩) as dif from score having dif>20,这里只能用having。


1:基本的表设计都是3F,然后就是考虑适当冗余。

2:查询上面,就看有没有慢查询。自己也没有修改过默认的配置,直接优化。京东问的,如何快速删除千万的日志信息,先把索引去掉,再删除。还有,那个索引高效,把选择性强的放前面高效。美团的,什么时候使用索引,什么时候不使用了。就这几个基本原则。

3:存储引擎。如果表对事务要求不高,同时是以查询和添加为主的,大家考虑使用myisam存储引擎. ,比如bbs中的 发帖表,回复表。对事务要求高,保存的数据都是重要数据,大家建议使用INNODB,比如订单表,账号表。