在索引的查询上,本身就是有顺序的。如何利用索引进行排序?
索引可以提高查询效率、排序效率、分组效率。
查询、where 后面尽可能的使用 索引进行查询
order by
group by
都是依照上面的来做即可。
select id from web_htorder where id>40 order by id desc limit 10;
sql> explain select id from web_htorder where id>40 order by id desc limit 10 \G;
************************* 1. row **********
id: 1
select_type: SIMPLE
table: web_htorder
type: range
ssible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: NULL
rows: 573
Extra: Using where; Using index
row in set (0.00 sec)
ROR:
query specified
表的优化与列的选择
整型>date,time>char,varchar>blob
字符串够用就好,不要慷慨
比如说:varchar(30) 与 varchar(300)
那么它的运行速度小的比较快。
如何选择字段的类型?
1、 如果可以选择 整型,就不要选择字符串, 整型 速度快。
2、varchar与char 哪个快? char快
3、blog 无法使用索引表,需要在磁盘建立缓存文件,不推荐使用。
4、不要使用null ,可以的话使用0 代替。null在磁盘上的字节占用的比较大。
如果说数据中插入了 null 值,那么如何查询啊?
select * from web_htorder where company is null 要使用 is null 才可以查询到。
enum在表中是使用整型进行存储的。
create table web_stu(
sex enum("male","female") not null default 'male'
);
由此可见,enum是存储的是num 整型。
在选择使用什么类型的时候,需要优选选择的 整型----enum ------char/varchar----blog 这样的一个顺序。
索引策略怎么优化?
假设一个表有一个联合索引,c1,c2,c3,c4那么下面哪一个只能使用索引c1,c2,c3部分?
如果只是在where上搜索加上的索引,这个不一定正确,一看就是刚出道小生。