Re: [HACKERS] Sequential scan speed, mmap, disk i/o]
От | Bruce Momjian |
---|---|
Тема | Re: [HACKERS] Sequential scan speed, mmap, disk i/o] |
Дата | |
Msg-id | 199805291728.NAA28567@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: [HACKERS] Sequential scan speed, mmap, disk i/o (dg@illustra.com (David Gould)) |
Список | pgsql-hackers |
> > > > Very interesting. Is it possible to get the schema, the query, and a > > > a sample of the data or a generator program for the data? I am quite surprised > > > to see us do so well, I would have guess that the per row overhead would > > > have us down far below wc. > > > > Sure. > > > > create table test (x1 int, x2 int, x3 char(10), x4 varchar(50)); > > insert into test values (3, 8, 'asdf','asdf'); > > > > insert into test select * from test; <- continue until test is large > > > > select * from test where x1 = 23423; <- this is what I timed > > > > So I finally got around to playing with this a little and I get on my > > P133 (HX mb) 32 Mb mem, Linux 2.0.32 (glibc) with Quantum Atlas 2.1G disk > on NCR810 SCSI OK, I have a Barracuda drive, which is probably the same speed as the Atlas(Ultra SCSI), but have a PP200, which may be why my PostgreSQL could keep up better with the disks. My dd's showed ~6,000 KB/sec, postgresql was 4,800 KB/sec, and wc was 4,500 KB/sec. Interesting how the speed fell off with the count(). That is executor overhead, I am sure. > > for test at 1048576 rows, file size is 80281600 bytes. > > - time cat pg/test/data/base/dg/test >/dev/null > 0.02user 3.38system 0:14.34elapsed 23%CPU = 5467 KB per second. > > - time wc pg/test/data/base/dg/test > 9.12user 2.83system 0:15.38elapsed 77%CPU = 5098 KB per second. > > - time psql -c "select * from test where x1 = 23423;" > 0:30.59elapsed (cpu for psql not meaningful, but top said 95% for postgres) > = 2563 KB per second. > Not bad! > > - time psql -c "select count(*) from test;" > 0:50.46elapsed = 1554 KB per second. > (trivial aggragate adds 20 seconds or 65%) > > - time psql -c "select count(*) from test where x1 = 3;" > 1:03.22elapsed = 1240 KB per second. > (trivial where clause adds another 13 seconds) > > - time psql -c "select count(*) from test where x4 = 'asdf';" > 1:10.96elapsed = 1105 KB per second. > (varchar compare vs int compare adds only 7.7 seconds). > > > Btw, during all this, the disk hardly even made any noise (seeking). > ext2 seems to lay things out pretty well. The data dir right now is on a > /home, which is 86% full and it still managed to stream the 'cat' at about > full disk bandwidth. -- Bruce Momjian | 830 Blythe Avenue maillist@candle.pha.pa.us | Drexel Hill, Pennsylvania 19026 + If your life is a hard drive, | (610) 353-9879(w) + Christ can be your backup. | (610) 853-3000(h)
В списке pgsql-hackers по дате отправления: