Mysql优化方案一之缓存与分区

来源:互联网 发布:115 mac 编辑:程序博客网 时间:2024/05/29 15:09

①查询缓存

查看参数:show variables like 'query_cache%';

开启:set global query_cache_type = 1;   

设置缓存大小:set global query_cache_size = 1024*1024*64;  //设置为64m,但通常不够

注:在数据变更时会自动清空缓存;满时会自动替换缓存 ;sql语句必须完全一样。  


②分区   详情点击这里
      是否支持:SHOW VARIABLES LIKE 'have_partitioning'; 
      描述:将表数据分别存储到不同区域(加快增删查改速度)
      组成:分区算法+分区(每个分区都是一张独立的表)
      分区算法:

KEY分区算法  (所有分区算法都必须使用主键,且取余分区)  《-----最常用-----》

CREATE table partition_1 (id int UNSIGNED not null AUTO_INCREMENT,    title varchar(255),    PRIMARY KEY (id))engine = INNODBpartition by key (id) partitions 5;


生成结果如下:

HASH分区算法 (所有分区算法都必须使用主键,取余分区)

create table t_hash (    a int,    b datetime)partition by hash (YEAR(b))  partitions 4;  //根据年份分区


list列表分区算法(所有分区算法都必须使用主键,条件分区)

create table t_list (    a int,   b datetime)partition by list (month(b)) (       partiotion spring VALUES IN(3, 4, 5),partiotion spring VALUES IN(6, 7, 8),partiotion spring VALUES IN(9, 10, 11),partiotion spring VALUES IN(12, 1, 2));


range表达式分区(所有分区算法都必须使用主键,条件分区)

create table t_list (    a int,   b datetime)partition by list (year(b)) (       partition p_70 LESS THAN (80),partition p_80 LESS THAN (90));












3 0
原创粉丝点击