mysql优化概述4
生活随笔
收集整理的這篇文章主要介紹了
mysql优化概述4
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、分區1、分區概念
將某張表數據,分別存儲到不同的區域中。
每個分區,都是獨立的表,都要存儲該分區的數據,索引信息。2、創建分區
創建表并指定分區的選項
create table 表名 (定義...
)
Partition by 分區算法 (分區參數) 分區選項
(*分區所參與的字段必須為主鍵的一部分)3、分區算法
(1)、key 按照某個字段進行取余
create table test1 (id int unsigned not null auto_increment,title varchar(32) no null default '',primary key (id)
)engine=myisam charset=utf8
partition by key (id) partitions 5;(2)、hash 按照某個表達式的值進行取余
--按照月份分成12個分區
create table test2 (id int unsigned not null auto_increment,birthday date,primary key (id,birthday)
)engine=myisam charset=utf8
partition by hash (month(birthday)) partitions 12;
(*key,hash分區算法要求分區參數必須返回為整數)(3)、list 需要指定每個分區的存儲條件
--按照四個季節分成4個分區
create table test3 (id int unsigned not null auto_increment,birthday date,primary key (id,birthday)
)engine=myisam charset=utf8
partition by list (month(birthday)) (partition p1 values in(3,4,5),partition p2 values in(6,7,8),partition p3 values in(9,10,11),partition p4 values in(12,1,2)
);
(*list條件依賴的數據是列表形式)(4)、range 條件依賴的數據是一個條件表達式
--按年份分成70后,80后,90后,00后4個分區
create table test4 (id int unsigned not null auto_increment,birthday date,primary key (id,birthday)
)engine=myisam charset=utf8
partition by range (year(birthday)) (partition p70 values less than (1980),partition p80 values less than (1990),partition p90 values less than (2000),partition p00 values less than MAXVALUE,
);4、查看mysql是否支持分區
> show variables like 'have_partitioning';
(*mysql5.6后移除了have_partitioning項,可以用SHOW PLUGINS;來查看)5、管理分區語法
(1)、key,hash
增加分區數量
> alter table test2 add partition partitions N;
減少分區數量
> alter table test2 coalesce partition N;
(*采用取余算法的分區數量的修改,不會導致已有分區數據的丟失)(2)、list,range
增加分區
> alter table test4 add partition (partition p2010 values less than (2010)
);刪除分區
> alter table test4 drop partition 分區名;
(*刪除條件算法的分區,導致分區數據的丟失)6、選擇分區算法
平均分配,就按照主鍵進行key即可
按照某種業務邏輯分區:
1、選擇那種整數型
2、最容易被篩選的字段二、mysql服務器配置常用優化項支持的最大連接數
max_connections = 100
myisam配置
鍵緩沖的大小,建議不要超過物理內存的30%
key_buffer_size=55M
表緩存,緩存的是表文件的句柄
table_cache=256
innodb配置
innodb緩沖池的大小,最大可以為機器物理內存的80%
innodb_buffer_pool_size=107M
?
轉載于:https://www.cnblogs.com/jkko123/p/6294657.html
總結
以上是生活随笔為你收集整理的mysql优化概述4的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 架构之美阅读笔记一
- 下一篇: dede DedeTag Engine