0.表结构如下:(包含两个索引)
Create Table: CREATE TABLE `user` ( `userID` varchar(40) NOT NULL, `userCode` varchar(20) DEFAULT NULL, `userName` varchar(25) DEFAULT NULL, `password` varchar(20) DEFAULT NULL, `userSort` varchar(30) DEFAULT NULL, `userStuTeaNum` varchar(50) DEFAULT NULL, `userUnitName` varchar(30) DEFAULT NULL, `userUnitNum` varchar(30) DEFAULT NULL, `isUse` varchar(2) DEFAULT NULL, `remark1` varchar(20) DEFAULT NULL, PRIMARY KEY (`userID`), UNIQUE KEY `userCodeIndex` (`userCode`)) ENGINE=InnoDB DEFAULT CHARSET=utf8
前提是会使用explain分析SQL语句:
2.强制走索引
(1)直接查询使用的是userCodeIndex
mysql> EXPLAIN SELECT userID FROM USERG
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: USER
partitions: NULL
type: index
possible_keys: NULL
key: userCodeIndex key_len: 63
ref: NULL
rows: 3
filtered: 100.00
Extra: Using index
1 row in set, 1 warning (0.00 se服务器托管网c)
(2)强制使用主键索引
语法:
SELECT userID FROM USER FORCE INDEX(PRIMARY);
注意:INDEX(indexName)里面的参数是index的名称,而不是列名,如果不知道index名称可以通过下列方式查询:
mysql> show index from tblname;mysql> show keys from tblname;
顺便说一句:key和index的区别:key有两个作用,一是约束字段,二是辅助查询(具备constraint和index的意义)
index只是辅助查询,它创建时会在另外的表空间(mysql中的innodb表空间)以一个类似目录的结构存储。
例如:强制使用userCodeIndex
mysql> EXPLAIN SELECT userID FROM USER FORCE INDEX(PRIMARY)G
*************************** 1. row ***************************
服务器托管网 id: 1
select_type: SIMPLE
table: USER
partitions: NULL
type: index
possible_keys: NULL
key: PRIMARY
key_len: 122
ref: NULL
rows: 3
filtered: 100.00
Extra: Using index
1 row in set, 1 warning (0.00 sec)
3.强制不走缓存
SELECT SQL_NO_CACHE * FROM USER
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
【跨平台通信消息格式包】 【跨平台通信消息格式包】 [ JSON ] 介绍:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard …