物理上:通过水平分表,垂直分表;
但水平分表在逻辑上增加sql维护 修改的难度。
维护代价过高,按照某种hash算法进行拆分,简单的拆分模式如取模方式。
分区技术从mysql5.1以后以插件技术,有力避免如上的弊端,成为解决海量数据存储的有力方法。
物理上做了切分,逻辑上表明保持不变。
mysql在5.1版本后由甲骨文添加的此功能。
watch -n1 ls -lh 实时跟踪中断
alt+f1-f6 六个终端的切换
create table part_tab(c1 int default null,c2 varchar(30) default null ,c3 date default null)engine=myisam
partition by range(yeare(c3))(
partition p0 values less than(1995),
partition p0 values less than(1996),
partition p0 values less than(1997),
partition p0 values less than maxvalue
);
mysql的共享表空间和独占表空间都是针对数据存储方式而言的。
共享表空间:
某个数据库的所有的表操作,索引文件全部放在一个文件中,
默认这个共享表空间的文件路径在data目录下,默认的文件名
为:ibdata1 初始化为10M。
独占表空间:
每一个表都会将生成以独立的文件方式来进行存储,每一个表都有一个.frm表描述文件,还有一个.ibd文件,其中这个文件包括了单
独一个表的数据内容以及索引内容,默认情况下他的存储位置也是在表的位置之中,
show engines;默认数据库引擎为myisam
在innodb引擎如何实现分区?
只有设置为独立表空间,才能在inodb下设置
vi /etc/my.cnf
innodb_data_home_dir=/usr/local/mysql/var 代表为数据库文件所存放的目录
innodb_log_group_home_dir=ibdata1:10M:autoextend 为日志存放目录
innodb_file_per_table=1 是否使用共享以及独占表空间 以上几个参数必须在一起将加入。
pkill mysqld
pstree |grep mysqld
mysql_safe --user=mysql
ll -h 列出数据文件