韩顺平 MySQL优化笔记 联系客服

发布时间 : 星期二 文章韩顺平 MySQL优化笔记更新完毕开始阅读d78d5dd0195f312b3169a59d

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 架构.)=>效果,做一个项目后再说.