插入数据前必须使用use选择操作的数据库吗,有的说对有的说错
mysql的
不一定,如果你只操作一个数据库,连接字符串里面指定了数据库,就不用use了
use 指令是为了更改当前数据库
如果你在操作的时候,select 或其他指令指定了数据库,可以不用 use ,比如 select * from databaseA.tableA ,这就是指定了数据库的操作,而不论当前数据库是不是 databaseA
反之,如果你省略了数据库指定,想从 databaseA 中获取数据,则需要 use 数据库,以便将指定的数据库变成当前数据库
possible_keys显示可能引用在这张表的索引,一个或多个
查询涉及到的字段上若存在索引,则该索引将会被列出,但查询时不一定被实际引用!
keys表示实际用到的一个索引,如果为null则没有使用索引
查询中若使用了覆盖索引,则该索引仅出现在key列表中
如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。即只需扫描索引而无须回表
类似于sql语句EXPLAIN select * from t_user where uname='yyf' and uid=2
其中uid是默认的主键索引,uname是创建的普通索引
possible_keys为PRIMARY,index_user_uname
,表示可能用到的索引有两个
而keys为PRIMARY
,表示实际用到的是主键索引
key_len表示索引中使用的字节数
可通过该列计算查询中使用的索引的长度。在不损失精确性的情况下,长度越短越好
key_ len 显示的值为索引字段的最大可能长度,并非实际使用长度
即key_ len是 根据表定义计算而得,不是通过表内检索出的