mysql索引
日期:2014-05-29 15:57:37
最后更新日期:2014-05-29 16:00:02
mysql> explain select * from token10 where device_token='4412e414dee1a5cdb88bf4a87f779b99cf742ff964acd'\G;
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: token10
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 162393
Extra: Using where
1 row in set (0.37 sec)
[/code]
百度下对应字段的意思,索引都是NULL,也就是mysql会直接进行扫库操作,而找到该device_token大概需要扫162393行。show create table table_name表结构里面没有任何索引。因为device_token是唯一的,故直接写个脚本加上唯一索引,再次top一下立马cpu下降到40%。解决问题后,感叹还要多学习啊,现在关系数据库和非关系数据库发展这么迅速。应用的某种技术多些比对思维,多调研几种类似的技术,从开发度和控制驾驭能力上多考虑。这是后话。