记一次蚂蚁金服的面试经历(11)

?除了主键索引,唯一索引之外,对于常用的查询字段也要加索引。查询的时候尽量使用主键索引,因为MySQL 的 InnoDB 的主键索引索引的是整行数据,而普通索引索引的是主键,会有回表操作。当然索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,需要酌情考虑。2、优化查询语句,尽量采用确认性查询语句,减少 or,in,not in,%xxx%语法的使用。

2)应用层面上:

?采用缓存机制,将常用的数据进行缓存,增加访问速度;?分库分表,读写分离,将数据分开读写,提升性能

9、强一致性,弱一致性,最终一致性

?强一致性:对于更新后的数据,要求后续所有节点的任何操作都要获取最新值的情况;?弱一致性:对于更新后的数据,后续节点的数据操作可以是新值,也可以是旧值,通过一段时间后后续节点对数据的操作都是新值;?最终一致性:是弱一致性的特殊形式,存储系统保证在没有新的更新的条件下,最终所有的访问都是最后更新的值。

10、有一个一百万行的文件,内部是购买的商品ID,如何获取到购买最多的前一百个商品。

推荐阅读