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
mysql优化概述4的更多相关文章
- MySQL优化概述
一. MySQL优化要点 MySQL优化是一门复杂的综合性技术,主要包括: 1 表的设计合理化(符合 3NF,必要时允许数据冗余) 2.1 SQL语句优化(以查询为主) 2.2 适当添加索引(主键索引 ...
- mysql优化概述3
1.前缀索引 建立索引关键字一种方案. 通常会使用字段的整体作为索引关键字. 有时,使用字段前部分数据,也可以去识别某些记录. 语法: index `索引名` (`字段`(N)); 使用字段前N个字符 ...
- mysql优化概述2
一.索引的概念 利用关键字,就是记录的部分数据(某个字段,某些字段,某个字段的一部份),建立与记录位置的对应关系,就是索引.索引的关键字一定是排序的. 二.索引的类型 mysql支持四种索引: 1.主 ...
- Mysql优化-概述
摘抄并用于自查笔记 为什么要优化 一个应用吞吐量瓶颈往往出现在数据库的处理速度上. 随着应用程序的使用,数据库数据逐渐增多,数据库处理压力逐渐增大. 关系型数据库的数据是存放在磁盘上,读写速度慢(与内 ...
- Mysql优化概述及其压力测试工具
衡量指标 TPS:Transactions Per Second (每秒传输的事物处理个数) ,这是指服务器每秒处理的事物数,支持事物的存储引擎如Innodb等特有的一个性能指标; QPS:Queri ...
- mysql优化一 之 优化内容概述及开启慢查日志的相关配置
1-1数据库优化的目的 首先是为了避免出现页面访问错误(基本有三种) (1)由于数据库连接timeout产生的页面5XX错误 (2)由于慢查询造成页面无法加载 (3)由于阻塞造成的数据无法提交 其次: ...
- 深入MySQL(四):MySQL的SQL查询语句性能优化概述
关于SQL查询语句的优化,有一些一般的优化步骤,本节就介绍一下通用的优化步骤. 一条查询语句是如何执行的 首先,我们如果要明白一条查询语句所运行的过程,这样我们才能针对过程去进行优化. 参考我之前画的 ...
- 0104探究MySQL优化器对索引和JOIN顺序的选择
转自http://www.jb51.net/article/67007.htm,感谢博主 本文通过一个案例来看看MySQL优化器如何选择索引和JOIN顺序.表结构和数据准备参考本文最后部分" ...
- MySQL优化技巧
目录 MySQL的特点 数据类型优化 整型类型 小数类型 字符串类型 时间类型 主键类型的选择 特殊类型的数据 索引优化 一个使用Hash值创建索引的技巧 前缀索引 多列索引 聚簇索引 覆盖索引 重复 ...
随机推荐
- API网关Kong系列(四)认证配置
目前根据业务需要先介绍2种认证插件:Key Authentication 及 HMAC-SHA1 认证 Key Authentication 向API添加密钥身份验证(也称为API密钥). 然后,消 ...
- golang web框架 beego 学习 (一) 环境搭建
下面的命令我都是在$GOPATH的路径下执行的: 1. 首先下载beego框架: go get github.com/astaxie/beego (注意:运行上面命令时没有反应,需要在etc/host ...
- Python 之 cas-clinet
因为要搞一个用户登录安全的验证,要用到cas服务,所以在网上搜了很多关于cas信息才搞成功. 我写的属于客户端的cas就是从CAS服务,获取返回的ticket验证通过,用户登录成功. 使用的是web. ...
- Python日志配置类
# -*- coding: utf-8 -* """日志工具类 author: Jill usage: from common.logger import Log log ...
- filter实例
最近在学习filter,看完理论知识之后,就特地在实际工作中的系统中去验证. SSP系统实例如下: 1.在web.xml中寻找 filter的配置信息 如下: <filter> < ...
- jmeter测试20个QPS下的响应时间-设置QPS限制
添加--->定时器--->Constant Throughput Timer Constant Throughput Timer 的主要属性介绍: 名称:定时器的名称 Target thr ...
- nginx、TP框架实现兼容pathinfo和rewrite两种url访问方式
环境:centos7,yum安装的nginx1.10.php-fpm,tp3.2 本方法只需要配置nginx.conf的一个文件就可以支持pathinfo和rewrite两种url访问方式 vim / ...
- forward与redirect的区别
1.从地址栏显示来说forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址 ...
- sssp maven pom
pom <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or ...
- Simple2D-22(重构)纹理池
以前 Simple2D 使用 TextureManager,现在将它改为 TexturePool (纹理池).主要是负责加载和管理纹理,这次为 TexturePool 添加纹理集的功能,纹理集就是将大 ...