alter table 表名 add primary key (列...)
删除索引
1. drop index 索引名 on 表名
2. alter table 表名 drop index index_name; 3. alter table 表名 drop primary key
显示索引
如何查询某表的索引 show indexes from 表名
? 使用索引的注意事项
查询要使用索引最重要的条件是查询条件中需要使用索引。
下列几种情况下有可能使用到索引:
1,对于创建的多列索引,只要查询条件使用了最左边的列,索引一般就会被使用。 2,对于使用like的查询,查询如果是 ‘aa’ 不会使用到索引 ‘aaa%’ 会使用到索引。 下列的表将不使用索引:
1,如果条件中有or,即使其中有条件带索引也不会使用。
2,对于多列索引,不是使用的第一部分,则不会使用索引。 3,like查询是以%开头
4,如果列类型是字符串,那一定要在条件中将数据使用引号引用起来。否则不使用索引。 5,如果mysql估计使用全表扫描要比使用索引快,则不使用索引。 ?
如何检测你的索引是否有效 show index(es) from 表名 show keys from 表名 desc 表名
结论: Handler_read_key 越大越少 Handler_read_rnd_next 越小越好
fdisk find ?
MyISAM 和 Innodb区别是什么
1. MyISAM 不支持外键, Innodb支持 2. MyISAM 不支持事务,不支持外键.
3. 对数据信息的存储处理方式不同.(如果存储引擎是MyISAM的,则创建一张表,
对于三个文件..,如果是Innodb则只有一张文件 *.frm,数据存放到ibdata1)
对于 MyISAM 数据库,需要定时清理 optimize table 表名 ?
常见的sql优化手法
1. 使用order by null 禁用排序
比如 select * from dept group by ename order by null
2. 在精度要求高的应用中,建议使用定点数(decimal)来存储数值,以保证结果的准确性
1000000.32 万
create table sal(t1 float(10,2)); create table sal2(t1 decimal(10,2));
问?在php中 ,int 如果是一个有符号数,最大值. int- 4*8=32 2 31 -1 ?
表的水平划分
?
如果你的数据库的存储引擎是MyISAM的,则当创建一个表,后三个文件. *.frm 记录表结构. *.myd 数据 *.myi 这个是索引.
mysql5.5.19的版本,他的数据库文件,默认放在 (看 my.ini文件中的配置.) ?
垂直分割表
读写分离
uml 课程.(uml 架构.)=>效果,做一个项目后再说.
相关推荐: