数据库优化方案
1、查询出的数据量过大(可以采⽤多次查询,其他的⽅法降低数据量),尽量采取分⻚查询数据。
2、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)。
3、返回了不必要的行和列
用OR的字句可以分解成多个查询,并且通过UNION链接多个查询。它们的速度只与是否使⽤用索引有关,如果查询需要⽤到联合索引,⽤UNION all执行的效率更高。
4、尽量将数据的处理工作放在服务器上,减少⽹络的开销,如使⽤存储过程。存储过程是编译、优化过,并且被组织到⼀个执行规划里,且存储在数据库中的SQL语句(存储过程是数据库服务器端的⼀段程序),是控制流语言的集合,速度当然快。
5、将需要查询的结果预先计算好放在表中,查询的时候再Select。
6、没有必要时不要用DISTINCT和ORDER BY,这些动作可以改在客户端执行。它们增加了额外的开销。
7、⼀次更新多条记录比分多次更新每次一条快,就是说批处理好
8、数据库内所有表结构均添加索引
9、将⼤大数据表做分库、分区处理:
具体操作如下:
1)、将大数据表与主数据库分离,单独新建⼀个数据库,然后将这些表做分区;
2)、将数据插入到消息队列内,后台利⽤windows计划任务执行(5分钟执⾏一次)C#控制台程序将 消息队列内的数据批量(消息队列内有50000条记录,⼀次性插⼊到数据表内)插⼊到相应的数据表内;