2014-01-23 40 views
-3

有其中有10万条记录以下是表 用户(USER_ID,USER_NAME,名字,姓氏,地址)的模式数据库性能比较调谐

以下选择时

被上述运行的用户表, 表需要18分钟来运行查询,整个数据库在这段时间内变慢。

select * from user where user_id = 1000 and username ='test';

在这种情况下,我们如何加快选择和/或提高数据库性能?

+3

什么是RDBMS?你检查过执行计划吗?桌子上有没有索引? – Dan

+0

首先要看的是索引,但您没有提及您使用的是什么平台,以便我们可以进一步帮助您。 –

+1

对于初学者来说,只需选择您需要的列......如果您要获取大量不必要的数据,'* *将会很昂贵。 – scunliffe

回答

1

这里为大家介绍一些小技巧,

的用户名和用户名(分组索引),如果用户ID是不是会提高性能独特/主键

1.新增指标确保

2.如果可以自动生成化妆用户名和主键,如果你这样做,你的查询将减少

“从用户选择*其中USER_ID = 1000”将与单项指标(用户ID快这是默认一个S是其主键),这将节省空间相比,分组索引

的性能比较完善3.基本规则,总是读取所需的仅列(SELECT * FROM最差总是)

不要忘了运行RUNSTATS并创建了索引之后REORG

上述

聚集索引也将有助于但需要更多的空间聚集索引。(为什么要浪费更多的空间,如果你的查询可以改善或你的情况减少)

希望这会有所帮助。 。

0

确保你在user_id上有一个聚簇索引,并在'test'上有一个非聚簇索引。

10000%

保证性能提升