一.数据的设计方面:
1.选择适当的冗余 在表中添加合适的字段,方便查询
2.适当建立索引,由于索引不占据内存和不用改写程序,只需要执行sql语句就ok,能提高查询速度
3.对表进行水平划分 将表进行合适的拆分,减少在操作数据库时候的搜索,有利于程序的简单实现,充分利用表的优势
4.对表进行垂直划分
5.选择适当的字段类型,特别是主键:字段选择的一般原则是保小不保大即能占用字节小的字段就不用大字段 且能够使用自增型的尽可能的使用
6.文件、图片等大文件的存储一般是存储路径,而不是直接存储在数据库
7.外键表示清楚,方便建立索引
8.掌握表的写入时机
9.宁可集中批量操作,避免频繁读写(让机器自己运作)
10.选择合适的引擎 Mysql提供了很多种引擎,我们用的最多的是myisam,innodb,memory这三类。官方手册上说道myisqm比innodb的读速度要 快,大概是3倍。不过书不能尽信啊,《OreIlly.High.Performance.Mysql》这本书里提到了myisam和innodb的比 较,在测试中myisam的表现还不及innodb。至于memory,哈哈,还是比较好用的。在批处理种作临时表是个不错的选择(如果内存够大)。在我的一个批处理中,速度比近乎1:10。
二、语句的优化
1.使用连接来代替子查询 子查询需要完成多个逻辑步骤,查询语句使用join的话能够提高查询速度
2.优化查询语句