Re: Sustained inserts per sec ... ? - Mailing list pgsql-performance
| From | Christopher Petrilli |
|---|---|
| Subject | Re: Sustained inserts per sec ... ? |
| Date | |
| Msg-id | 59d991c405040409094e7bbd17@mail.gmail.com Whole thread Raw |
| In response to | Re: Sustained inserts per sec ... ? (Tom Lane <tgl@sss.pgh.pa.us>) |
| Responses |
Re: Sustained inserts per sec ... ?
|
| List | pgsql-performance |
On Apr 4, 2005 11:52 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Christopher Petrilli <petrilli@gmail.com> writes:
> > The table has:
> > * 21 columns (nothing too strange)
> > * No OIDS
> > * 5 indexes, including the primary key on a string
>
> Could we see the *exact* SQL definitions of the table and indexes?
> Also some sample data would be interesting. I'm wondering for example
> about the incidence of duplicate index keys.
Of course, this is a bit cleansed, since it's an internal project, but
only the column names are changed:
CREATE TABLE foos (
foo_id VARCHAR(32),
s_ts INTEGER NOT NULL,
c_ts INTEGER NOT NULL,
bar_id INTEGER NOT NULL,
proto INTEGER NOT NULL,
src_ip INT8 NOT NULL,
dst_ip INT8 NOT NULL,
src_port INTEGER,
dst_port INTEGER,
nated INTEGER NOT NULL,
src_nat_ip INT8,
dst_nat_ip INT8,
src_nat_port INTEGER,
dst_nat_port INTEGER,
foo_class INTEGER NOT NULL,
foo_type INTEGER NOT NULL,
src_bar INTEGER NOT NULL,
dst_bar INTEGER NOT NULL,
user_name VARCHAR(255),
info TEXT
) WITHOUT OIDS;
ALTER TABLE foos ADD CONSTRAINT foos_foo_id_pk UNIQUE (foo_id);
CREATE INDEX foos_c_ts_idx ON foos(conduit_ts);
CREATE INDEX foos_src_ip_idx ON foos(src_ip);
CREATE INDEX foos_dst_ip_idx ON foos(dst_ip);
CREATE INDEX foos_foo_class_idx ON foos(foo_class);
CREATE INDEX foos_foo_type_idx ON foos(foo_type);
CREATE TABLE foos001 ( ) INHERITS (foos) WITHOUT OIDS;
ALTER TABLE foos001 ADD CONSTRAINT foos001_foo_id_pk UNIQUE (foo_id);
CREATE INDEX foos001_c_ts_idx ON foos001(conduit_ts);
CREATE INDEX foos001_src_ip_idx ON foos001(src_ip);
CREATE INDEX foos001_dst_ip_idx ON foos001(dst_ip);
CREATE INDEX foos001_foo_class_idx ON foos001(foo_class);
CREATE INDEX foos001_foo_type_idx ON foos001(foo_type);
That continues on, but you get the idea...
So, as you asked about data content, specifically regarding indices,
here's what the "simulator" creates:
foo_id - 32 character UID (generated by the UUID function in mxTools,
which looks like '00beef19420053c64f3f01aeb0b4a2a5', and varies in the
upper components more than the lower.
*_ts - UNIX epoch timestamps, sequential. There's a long story behind
not using DATETIME format, but if that's the big issue, it can be
dealt with.
*_ip - Randomly selected 32-bit integers from a pre-generated list
containing about 500 different numbers ranging from 3232235500 to
3232236031. This is unfortunately, not too atypical from the "real
world".
*_class - Randomly selected 1-100 (again, not atypical, although
normal distribution would be less random)
*_type - Randomly selected 1-10000 (not atypical, and more random than
in real world)
Hopefully this helps?
Chris
--
| Christopher Petrilli
| petrilli@gmail.com
pgsql-performance by date: