内存是最重要的因素,由于它容许您调整服务器系统变量。更多的内存意味着能够将更大的密钥和表缓存存储在内存中,从而减小磁盘访问速度,下降一个数量级。缓存
若是未将服务器变量设置为使用额外的可用内存,则仅添加更多内存可能不会带来显着改进。服务器
在主板上使用更多RAM插槽会增长总线频率,RAM和CPU之间会有更多延迟。所以,最好使用每一个插槽的最大RAM大小。优化
快速磁盘访问相当重要,由于最终它是数据所在的位置。关键指标是磁盘搜索时间,衡量物理磁盘移动访问数据的速度,所以请选择寻道时间尽量低的磁盘。spa
您还能够为临时文件和事务日志添加专用磁盘。日志
更快的网速主要影响数据接收和发送的速度,在可能的状况通常建议采用局域网的链接方式。server
虽然硬件瓶颈一般落在其余地方,但更快的处理器容许更快地执行计算,而且结果更快地发送回客户端。索引
除处理器速度外,处理器的总线速度和高速缓存大小也是须要考虑的重要因素。事务
一般用的索引:主键(Primary keys),惟一索引(Unique Index),普通索引(Plain Index),全文索引(Full-Text Index)内存
主键是惟一的,永远不能为空,不然没法建立索引。它始终只能识别一条记录,而且必须表示每条记录。每一个表只能有一个主键。get
在XtraDB / InnoDB表中,全部索引都包含主键做为后缀。所以,当使用该存储引擎时,保持主键尽量小是特别重要的。若是主键不存在且没有UNIQUE索引,则InnoDB会建立一个6字节的聚簇索引,该索引对用户不可见。
惟一索引必须是惟一的,但它能够为null,能够单个列和多个列组合。
不须要惟一,能够单个列和多个列组合。
<,<=,> =,>,BETWEEN,LIKE 'xxx%' 都是能应用索引的;
可是例如:<>,!=,LIKE '%xxx' 等都是不会应用索引查询,通常状况单个表中的索引最好不要超过6个。
至于SQL优化这个范围有点广,后续再看看写吧~~~