. - -/.
, , IO, . ( 2 ) , .
, , , - IO, .
JosMac , .
: .
1 , , :
create table users (
ID int not null primary key,
name varchar(50) not null,
email varchar(50) not null,
sex int,
age int,
country varchar(50),
occupation varchar(50),
handedness int);
create table entries (
ID int not null primary key,
score int not null,
message varchar(140) not null,
userID int not null references users(ID));
create index entry_scores
on entries(score);
insert into users
select generate_series,
'name',
'email@test.com',
CASE generate_series % 3
WHEN 0 THEN
null
WHEN 1 THEN
1
WHEN 2 THEN
2
END,
generate_series,
'Some country',
'some occupation',
CASE generate_series % 3
WHEN 0 THEN
null
WHEN 1 THEN
1
WHEN 2 THEN
2
END from generate_series(1, 1000000, 1);
insert into entries
select generate_series, generate_series, 'some message', generate_series from generate_series(1, 1000000, 1);
explain analyze select score, message from entries;
:
Seq Scan on entries (cost=0.00..9117.72 rows=176472 width=302) (actual time=0.019..393.597 rows=1000000 loops=1)
2 , , :
create table users (
ID int not null primary key,
name varchar(30) not null,
email varchar(30) not null,
sex int,
age int,
country varchar(50),
occupation varchar(50),
handedness int,
score int not null,
message varchar(140) not null);
create index user_scores
on users(score);
insert into users
select generate_series,
'name',
'email@test.com',
CASE generate_series % 3
WHEN 0 THEN
null
WHEN 1 THEN
1
WHEN 2 THEN
2
END,
generate_series,
'Some country',
'some occupation',
CASE generate_series % 3
WHEN 0 THEN
null
WHEN 1 THEN
1
WHEN 2 THEN
2
END,
generate_series,
'some message' from generate_series(1, 1000000, 1);
explain analyze select score, message from users;
:
Seq Scan on users (cost=0.00..15857.46 rows=157146 width=302) (actual time=0.012..485.094 rows=1000000 loops=1)
, 1 , -, , IO .
2: .