您的位置:首页 > 数据库 > MySQL

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

2016-06-08 11:15 609 查看
①查询缓存

查看参数: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 = INNODB
partition 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)
);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: