SlideShare a Scribd company logo
1 of 24
Download to read offline
淺談 MySQL Indexes 建置
你渴望速度嗎,快!還要更快!!!
Why Indexes
Why Indexes
SELECT COUNT(*) FROM `battles` WHERE `damage` = 32123
SELECT COUNT(*) FROM `battles` WHERE `battle_id` = 32123
Why Indexes
mysql.cs.ccu.edu.tw
13594400 rows
E-Sim: http://e-sim.org
Indexes How To
in the WHERE clause
Indexes How TO
WHERE 中的欄位需要建 index
多欄位需⽤組合 index
ORDER BY, GROUP BY…
Indexes How TO
id battle_id round citizen_id …
Indexes How TO
SELECT * FROM `battles` WHERE `battle_id` = 32175
SELECT * FROM `battles` WHERE `citizen_id` = 342311
id battle_id round citizen_id …
Indexes How TO
SELECT * FROM `battles` WHERE `battle_id` = 32175 AND `round` = 2
id battle_id round citizen_id …
SELECT * FROM `battles` WHERE `battle_id` = 32175
SELECT * FROM `battles` WHERE `round` = 2✕
Example
使⽤ email 登入
特定暱稱開頭的使⽤者
特定年級的使⽤者
Users Table
id email nickname grade
使⽤ email 登入
特定暱稱開頭的使⽤者
特定年級的使⽤者
Users Table
id email nickname grade
使⽤ email 登入
特定暱稱開頭的使⽤者
特定年級的使⽤者
特定暱稱開頭且是特定年級的使⽤者
Users Table
id email nickname grade
使⽤ email 登入
特定暱稱開頭的使⽤者
特定年級的使⽤者
特定暱稱開頭且是特定年級的使⽤者
Users Table
id email nickname grade
Tokens Table
id token user_id expired_at
特定 token 是否存在且尚未過期
特定使⽤者的所有有效 tokens
Tokens Table
id token user_id expired_at
特定 token 是否存在且尚未過期
特定使⽤者的所有有效 tokens
Explain Syntax
Explain Syntax
EXPLAIN SELECT * FROM `users` WHERE `username` LIKE 't%'
EXPLAIN SELECT * FROM `users` WHERE `password` LIKE '$2%'
Explain Syntax
EXPLAIN SELECT * FROM `users` WHERE `username` LIKE 't%'
Note
Note
https://dev.mysql.com/doc/refman/5.7/en/
Q & A
Thanks

More Related Content

More from Chang Yu-Sheng

More from Chang Yu-Sheng (6)

Store-Passwords
Store-PasswordsStore-Passwords
Store-Passwords
 
Security HTTP Headers
Security HTTP HeadersSecurity HTTP Headers
Security HTTP Headers
 
Homebrew Updater
Homebrew UpdaterHomebrew Updater
Homebrew Updater
 
Pokemon Go Map
Pokemon Go MapPokemon Go Map
Pokemon Go Map
 
Facebook Anonymous Publisher
Facebook Anonymous PublisherFacebook Anonymous Publisher
Facebook Anonymous Publisher
 
Laravel
LaravelLaravel
Laravel
 

Introduction to MySQL Indexes