分布式MySQL应用的要点:
1.灵活应用操作系统缓存
2.正确设置索引
3.以横向扩展为前提设计
灵活运用操作系统缓存:
1.考虑全部数据量
->保持数据量小于物理内存
->内存不足时增加内存等
2.考虑表结构设计对数据大小的影响
索引的重点:
index = 索引
B+树
1.搜索外部存储设备时能将寻道次数最小化的树结构
2.搜索复杂度:O(n) -> O(log n)
[例子]从4000万条数据的标签表中搜索
无索引 = 线性查找
-> O(n) ->最大4000万次搜索
有索引 = 用B树进行二分查找
-> O(log n) ->log 4000万 = 最大25.25次
[补充]索引的作用--MySQL的不足
1.基本上,使用索引的有
->where,order by,group by条件中指定的列
2.合适索引有效
->明确地添加了索引
->主键,UNIQUE约束
3.MySQL索引的陷阱
->想同时使用多个列上的索引,就必须使用复合索引
确定索引是否有效的方法--explain命令
从索引生肖的方式来看,Extra列也十分重要。除了Using Where之外还可能出现Using filesort,Using temporary等,分别表示使用外部文件进行排序,使用临时表时需要索引等。基本上出现了Using filesort,Using temporary的查询不能说是好查询,所以要努力调整查询和索引,尽量不要出现这两者。