文章列表
CREATE TABLE `course` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
KEY `my_index` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1;
使用查询:
explain select name from course where name='java';
结果:
+----+------------- ...
Extra:
1.use index
从只使用索引树中的信息而不需要进一步搜索读取实际的行来检索表中的列信息。当查询只使用作为单一索引一部分的列时, 可以使用该策略。
rows:
rows
列显示MySQL
认为它执行查询时必须检查的行数。就是实际会去硬盘查找的行数,与在索引中查找有区别。
select_type:
1.
SIMPLE
简单SELECT
(
不使用UNION
或子查询)
2.
PRIMA ...
1.PRIMARY KEY(主键索引)
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE (
`column`
)
3.INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.FULLTEXT(全文索引)
mysql>ALTER TAB ...
索引是找到行的高效方法,但是MySQL也能使用索引来接受列的数据,这样就可以不用读取行数据。毕竟,索引的叶子节点包含了他们索引的数据,既然索引能给你需要的数据,为什么还要读取行呢?包含(或者‘覆盖’)所有满足查询需要的数据的索引叫做覆盖索引(covering index) --- 摘自《高性能MySQL》
我的理解是
对异常的一点浅薄认识的记录
- 博客分类:
- java
java的异常分为checked的和unchecked的异常。
我的理解是:
checked的异常是一些可以被处理的异常,在出现这些异常以后系统在做了一些操作后有机会回到正常运作。方法名后有throws XXException 的都是checked异常,这样的申明强制要求调用者用try..catch..语句去处理异常。
unchecked异常是一些一旦出现就没办法的回复的异常,系统出现这些异常就算崩溃了。类库中有个RuntimeException就属于这种异常,抛出这种异常的方法不需要在方法声明中申明方法抛出的异常,调用者也不需要用try..catch..语句去捕获,因为这 ...