(查詢sandra出演的所有影片)
子查詢優化 改為 鏈接查詢
SELECT title,release_year,length
FROM film
JOIN (SELECT film_id FROM film_actor JOIN actor ON(
film_actor.actor_id = actor.actor_id AND actor.first_name='sandra')) AS t
On t.film_id =film.film_id
子查詢優化 改為 鏈接查詢
SELECT title,release_year,length
FROM film
JOIN (SELECT film_id FROM film_actor JOIN actor ON(
film_actor.actor_id = actor.actor_id AND actor.first_name='sandra')) AS t
On t.film_id =film.film_id
2015-12-01
http://dev.mysql.com/doc/sakila/en/sakila-installation.html
1. $ unzip sakila-db.zip #解壓
2. mysql -u root -p ##登錄
3. 在MYSQL 命令下: SOURCE 下載路徑/sakila-schema.sql #建立表結構
4. 在MYSQL 命令下: SOURCE 下載路徑/sakila-data.sql #插入數據
1. $ unzip sakila-db.zip #解壓
2. mysql -u root -p ##登錄
3. 在MYSQL 命令下: SOURCE 下載路徑/sakila-schema.sql #建立表結構
4. 在MYSQL 命令下: SOURCE 下載路徑/sakila-data.sql #插入數據
在添加了索引之后,那么會增加一個索引表,這個索引表 記錄了索引值 與 對應字段的關系,然后,以該字段進行的查詢操作,將不再需要掃描原來的數據表的每一行,而是掃描這個建立的索引表,顯然,這個索引表的IO的操作就比原來的數據表要小很多了,所以可以提升查詢的速度,并且如果表的字段比較多的情況,那么建立索引的總用越明顯;同時,因為要維護這個索引表,所以當進行增,刪,改的時候,性能會相對下降;
索引的應用:
覆蓋索引,就是說 通過索引的值,在索引表中就可以找到需要的值;
索引的應用:
覆蓋索引,就是說 通過索引的值,在索引表中就可以找到需要的值;
2015-10-14
數據表是按照行的方式進行存儲的,一個數據表中包含了許多行,而每一行由不同的字段組成,這些字段稱為列,這就是數據表的結構;
在查詢的時候,如果沒有指定索引,那么必須要對每一行都進行掃描,然后才能找到每行中被查詢的字段,所以,可以說,在沒有索引的情況下,要掃描整個表才可以查詢到需要的數據;
在查詢的時候,如果沒有指定索引,那么必須要對每一行都進行掃描,然后才能找到每行中被查詢的字段,所以,可以說,在沒有索引的情況下,要掃描整個表才可以查詢到需要的數據;
2015-10-14