mysql15--垂直分表水平分表

Posted 672530440

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql15--垂直分表水平分表相关的知识,希望对你有一定的参考价值。

分表技术(表的结构不能变)
分表技术有(水平分割和垂直分割)

当一张越来越大时候,即使添加索引还慢的话,我们可以使用分表
以qq用户表来具体的说明一下分表的操作.
思路如图 :
首先我创建三张表 user0 / user1 /user2 , 然后我再创建 uuid表,该表的作用就是提供自增的id,   插入的时候插入到不同的表中去。
走代码:
create table user0(
id int unsigned primary key ,
name varchar(32) not null default \'\',
pwd  varchar(32) not null default \'\')
engine=myisam charset utf8;

create table user1(
id int unsigned primary key ,
name varchar(32) not null default \'\',
pwd  varchar(32) not null default \'\')
engine=myisam charset utf8;

create table user2(
id int unsigned primary key ,
name varchar(32) not null default \'\',
pwd  varchar(32) not null default \'\')
engine=myisam charset utf8;


create table uuid(
id int unsigned primary key auto_increment)engine=myisam charset utf8;

n 垂直分割,把列拆分到不同的表。示意图

一句话: 如果一张表某个字段,信息量大,但是我们很少查询,则可以考虑把这些字段,单独的放入到一张表中,这种方式称为垂直分割.


数据库只存储路径。图片和文件存放在文件系统,甚至单独放在一台服务器(图床 / 视频服务器 ). 数据库是可以存视频的。


mysql.ini:
port = 3306  端口是可以改的。
max_connections=200 ,mysql是中型数据库,2000并发数是极限。但是做好缓存之后可以支持10万没问题。也可以做读写分离集群。
query_cache_size=15M,查询缓存的大小。


innodb引擎,所以下面两个参数调的很大 
innodb_additional_mem_pool_size = 64M
innodb_buffer_pool_size =1G       //缓存池
对于myisam,需要调整key_buffer_size
当然调整参数还是要看状态,用show status语句可以看到当前状态,以决定改调整哪些参数

如果你的机器内存超过4G,那么毋庸置疑应当采用64位操作系统和64位mysql 5.5.19,位越大是寻址范围越大,

  

以上是关于mysql15--垂直分表水平分表的主要内容,如果未能解决你的问题,请参考以下文章

[精选]彻底搞清分库分表(垂直分库,垂直分表,水平分库,水平分表)

Mysql之分库分表及中间件

mysql中的优化, 简单的说了一下垂直分表, 水平分表(有几种模运算),读写分离.

mysql数据库分库分表shardingjdbc

MySQL的分表与分区

场景应用:如何实现MySQL的分库分表?