mysql索引详解 分库分表 数据库惯用
- 2015-08-15 22:25:00
- admin
- 原创 1893
一、索引详解
1、索引用于提高查询速度,主键和外键用于保证唯一性和完整性;
2、普通索引,create index idx_Table_column on Table(column);
3、唯一索引,create unique index idx_Table_column on Table(column);
4、主键,必须非空,每个表只能有一个主键,通过字段属性申明PRIMARY KEY;
5、外键,可以为空,CONSTRAINT fk_Table_column FOREIGN KEY(newColumn) REFERENCES Table(column);
6、查看索引:show create table TableName,show index from TableName;
7、触发索引操作:where、on、比较操作符、between、不以百分号开头的like;
8、单列索引对一个字段创建一个索引,多列索引对多个字段创建一个索引;
自增ID配置:
1、默认初始值:auto_increment_offset 1
2、默认增加值:auto_increment_increment 1
3、查看配置:show variables like 'auto_inc%'
二、分库分表
1、垂直分表,将表的部分字段拆分成一个独立的表,通常是低频访问的大字段;
2、垂直分库,将库的部分表拆分成一个独立的库,通常按业务对表进行分类;
3、水平分表,将表的行按照一定规则拆分到多个表,通常对大表进行拆分;
4、水平分库,将表的行按照一定规则拆分到多个库,通常对大表进行拆分;
5、分库分表提升了数据库性能和数据库高可用,水平切分要保证新增均匀;
三、数据库惯用
1、select 1,验证数据库连通性,客户端缓存密码时可以重连数据库;
2、select 1 from Table limit 1,验证数据表是否存在;
3、select * from Table where 1=1,简化增加条件惯用;