对千万级MySQL数据库建立索引的事项及提高性能的手段
2009-10-08 11:27
609 查看
一、注意事项:
首先,应当考虑表空间和磁盘空间是否足够。我们知道索引也是一种数据,在建立索引的时候势必也会占用大量表空间。因此在对一大表建立索引的时候首先应当考虑的是空间容量问题。
其次,在对建立索引的时候要对表进行加锁,因此应当注意操作在业务空闲的时候进行。
二、性能调整方面:
首当其冲的考虑因素便是磁盘I/O。物理上,应当尽量把索引与数据分散到不同的磁盘上(不考虑阵列的情况)。逻辑上,数据表空间与索引表空间分开。这是在建索引时应当遵守的基本准则。
其次,我们知道,在建立索引的时候要对表进行全表的扫描工作,因此,应当考虑调大初始化参数db_file_multiblock_read_count的值。一般设置为32或更大。
再次,建立索引除了要进行全表扫描外同时还要对数据进行大量的排序操作,因此,应当调整排序区的大小。
9i之前,可以在session级别上加大sort_area_size的大小,比如设置为100m或者更大。
9i以后,如果初始化参数workarea_size_policy的值为TRUE,则排序区从pga_aggregate_target里自动分配获得。
最后,建立索引的时候,可以加上nologging选项。以减少在建立索引过程中产生的大量redo,从而提高执行的速度。
首先,应当考虑表空间和磁盘空间是否足够。我们知道索引也是一种数据,在建立索引的时候势必也会占用大量表空间。因此在对一大表建立索引的时候首先应当考虑的是空间容量问题。
其次,在对建立索引的时候要对表进行加锁,因此应当注意操作在业务空闲的时候进行。
二、性能调整方面:
首当其冲的考虑因素便是磁盘I/O。物理上,应当尽量把索引与数据分散到不同的磁盘上(不考虑阵列的情况)。逻辑上,数据表空间与索引表空间分开。这是在建索引时应当遵守的基本准则。
其次,我们知道,在建立索引的时候要对表进行全表的扫描工作,因此,应当考虑调大初始化参数db_file_multiblock_read_count的值。一般设置为32或更大。
再次,建立索引除了要进行全表扫描外同时还要对数据进行大量的排序操作,因此,应当调整排序区的大小。
9i之前,可以在session级别上加大sort_area_size的大小,比如设置为100m或者更大。
9i以后,如果初始化参数workarea_size_policy的值为TRUE,则排序区从pga_aggregate_target里自动分配获得。
最后,建立索引的时候,可以加上nologging选项。以减少在建立索引过程中产生的大量redo,从而提高执行的速度。
相关文章推荐
- 对千万级MySQL数据库建立索引的事项及提高性能的手段
- 对于大表(千万级)建立索引时应当注意的事项及提高性能的手段
- 千万级MySQL数据库建立索引及提高性能的手段(1)
- 千万级MySQL数据库建立索引及提高性能的手段(2)
- 对一大表(百万级以上)建立索引时应当注意的事项及提高性能的手段
- 对一大表(百万级以上)建立索引时应当注意的事项及提高性能的手段-数据库专栏,SQL Server
- 建立合理的索引提高SQL Server的性能
- 通过在Oracle子表外键上建立索引提高性能
- 建立合理的索引提高SQL Server的性能
- mysql数据库索引的建立以及性能测试
- 建立合理索引提高SQL Server性能
- 建立合理的索引提高SQL Server的性能
- 合理建立索引-提高SQL Server的性能之法
- 建立合理的索引提高SQL Server的性能
- mysql数据库以加索引方式提高性能
- 一个Web报表项目的性能分析和优化实践(四):MySQL建立索引,唯一索引和组合索引
- MySQL建立索引的注意事项
- 提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
- 在表上创建索引以提高性能
- 索引的原理及索引建立的注意事项