To run sql statements from an external file, load them into your RDBMS client and run the commands from there.
Set your database name to be indexed_cars
.
Set your database username to be indexed_cars_user
.
Set your database password to be indexedPassword
.
- Run the provided
scripts/car_models.sql
script on theindexed_cars
database - Run the provided
scripts/car_model_data.sql
script on theindexed_cars
database 10 times
there should be 223380 rows incar_models
After each query is made, your RDBMS client should have a some output that tells you how long each query took. For psql, you can use the \timing
command to turn on/off query timing.
- Run a query to get a list of all
make_title
values from thecar_models
table where themake_code
is'LAM'
, without any duplicate rows, and note the time somewhere. (should have 1 result) - Run a query to list all
model_title
values where themake_code
is'NISSAN'
, and themodel_code
is'GT-R'
without any duplicate rows, and note the time somewhere. (should have 1 result) - Run a query to list all
make_code
,model_code
,model_title
, andyear
fromcar_models
where themake_code
is'LAM'
, and note the time somewhere. (should have 1360 rows) - Run a query to list all fields from all
car_models
in years between2010
and2015
, and note the time somewhere (should have 78840 rows) - Run a query to list all fields from all
car_models
in the year of2010
, and note the time somewhere (should have 13140 rows)
Given the current query requirements, "should get all make_titles", "should get a list of all model_titles by the make_code", etc.
Create indexes on the columns that would improve query performance.
To add an index:
CREATE INDEX [index name]
ON [table name] ([column name(s) index]);
Record your index statements in indexing.sql
Write the following statements in indexing.sql
- Create a query to get a list of all
make_title
values from thecar_models
table where themake_code
is'LAM'
, without any duplicate rows, and note the time somewhere. (should have 1 result) - Create a query to list all
model_title
values where themake_code
is'NISSAN'
, and themodel_code
is'GT-R'
without any duplicate rows, and note the time somewhere. (should have 1 result) - Create a query to list all
make_code
,model_code
,model_title
, and year fromcar_models
where themake_code
is'LAM'
, and note the time somewhere. (should have 1360 rows) - Create a query to list all fields from all
car_models
in years between2010
and2015
, and note the time somewhere (should have 78840 rows) - Create a query to list all fields from all
car_models
in the year of2010
, and note the time somewhere (should have 13140 rows)
Compare the times of the queries before and after the table has been indexes.
Why are queries #4 and #5 not running faster?
- Add your recorded indexing statements to the
scripts/car_models.sql
- Delete the
car_models
table - Run the provided
scripts/car_models.sql
script on theindexed_cars
database - Run the provided
scripts/car_model_data.sql
script on theindexed_cars
database 10 times
there should be 223380 rows incar_models