提交数据库访问性能一些简单措施
1.合理安排索引
2.优化查询条件
3.谨慎使用触发器
4.大批量插入使用导入方式
5.区分实时与历史数据,转存
6.分表,分库,分渠道储存,数据库,硬盘,缓存。数据库的优化和定期整理
7.建立全文索引
8.优化查询
就有可以百万级也是1秒内出来
我认为数据分区、分成多个表、增加内存、换更好的机器都是物理上的,当然她带来的速度的改善是有的。但是性能的改善一般比较少做多10倍到100倍之间。
对Oracle我不熟悉,但在SQL Server中最有效和可行的办法是优化数据库结构和索引。
对于优化数据库有根据事务型和数据仓库型分为两个方面。
偏重事务需要插入、更新速度快,所以一般这样的表索引比较少,字段数目也少
数据仓库需要查询速度快,他一般会根据查询可能出现的条件建立所有的索引,形成所谓的索引覆盖。在大数据量的数据库中,一旦某个查询不能完全利用索引,就会形成表扫描。这是最坏的情况,查询速度同数据量成正比。而如果能完全利用索引,查询速度只有在数据量变化几个等级才会有一些变化。我曾经测试过一个库存表150条记录,索引建立不好一个查询需要4分钟,对索引优化以后1秒不到。如果数据单纯作为查询可以取消对该表的日志功能。
我一般是分成两个库,一个处理事务,一个处理查询,然后建立一个定期事务把事务数据增加到查询库中。
总的来说,只有才所有软的手段不能解决问题的情况下才采用物理的方法。但是物理的方法也不是单纯增加应加的配置。一般有以下几个手段
1。把日志放到另外的硬盘上
2。把修改最频繁的表放到另外的硬盘上、甚至放入内存中
3。采用更快的硬盘
4。增加更多内存
5。增加CPU数目
6。建立数据库服务器集群
数据库的优化是一门很专业的学问,这又你充分的了解数据在数据库中存储的结构,查询、修改的处理方式同时又了解业务才可能做好。我们应该花20%的精力去解决那些最关键最常用的地方。
希望能有更多的人参与讨论,一点议论不要见笑。
其实问题到了sundyl这里,已经提升到了一个高度了。
显然为了提高系统的性能,通常有几个办法
1。将所有相关的硬件升级,并尽最大可能减少每个瓶颈,诸如网络速度、硬盘速度等
2。选择稳定、高性能的软件支撑平台,比如选择数据库、应用服务器。。。
3。程序代码优化
4。将软件系统环境优化,例如索引、存储空间、临时空间、碎片整理等选项。