mysql 数据存储总结
由于最近一直在了解mysql。各种表类型的数据存储以及相关限制就是必须了解的方面了。
自己的服务器环境:OS Cent OS ext3,memory 4G, disk 2T block size 4K。
经调查,linux下文件最大是存在限制的。去google上搜了搜,大家说法不一,最终自己还是找到比较官方的说。详见http://en.wikipedia.org/wiki/Ext3 所以自己的服务器最大文件限制为2T。
这点搞清楚后,在数据库部署设计上就得考虑到这点。
简单说一下自己的数据库架构,是采用比较通用和成熟的做法,即:2个master,之间存在HA;N个slaves,负载分担读的负载。master和slaves采用replication异步同步。master上的数据库表类型为innodb,该类型有事物的概念,并且适合频繁读写。slaves数据库采用myisam表类型,可以更好的处理读请求。所以在此讨论这两种类型数据的存储形式。
innodb默认的是共享表空间的,这点在mysql官方网站文档上有很明确的说明。我就不费话了。如果采用共享表空间,可以配置多个数据文件到不同的磁盘,来解决数据存储瓶颈。但是自己始终觉得,大文件并不太利于维护,里数据移动等。所以还可以采用per-table表空间,但是问题又就来了,每个表的数据好像只能存储到mysql配置的数据目录内。这点自己没有找到合适的解决方案。
myisam表类型,它的index表和data表都是可以在create table的时候指定路径的。所以我们可以指定到不同的磁盘上,解决未来的数据存储瓶颈。很简单很强大。
相关文档:
安裝MySQL-Server
$ sudo apt-get install mysql-server
安裝Apache HTTP Server
$ sudo apt-get install apache2
安裝PHP for Apache HTTP Server
$ sudo apt-get install php5
安裝MySQL for Apache HTTP Server
$ sudo apt-get install libapache2-mod-auth-mysql
$ sudo apt-get ......
MySql简易笔记
1:安装http://download.mysql.cn/src/2006/0710/5543.html;
2:打开mysql的CMD
3:创建一个数据库及表:
mysql> CREATE DATABASE bbs;
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHA ......
返回一个结果全世界都知道怎么处理,关键是返回多个结果集就不好办了,下面有一解决办法
存储过程代码
DELIMITER $$;
DROP PROCEDURE IF EXISTS `test`.`sp_test`$$
CREATE PROCEDURE `test`.`sp_test` ()
BEGIN
select * from `user`.`user` limit 0, 50;
select coun ......
Mysql所支持的引擎目前有以下几种:
MyISAM,InnoDB,MERGE,MEMORY(HEAR),BDB(BerkeleyDB),EXAMPLE,FEDERATED,ARCHIVE,CSV,BLACKHOLE.
为什么要有这么多引擎?主要是Mysql是一款极为强大的数据库,它适应很多不同的运行环境,为了满足各种不同的运行环境与存储方案的需要,这些搜索引擎也就应运而生(不光是为了配合Mysql ......
来源:http://www.blogjava.net/Alpha/archive/2007/07/23/131912.html
//主键549830479
alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);
//增加一个新列549830479
alter table t2 add d timestamp;
alter table infos add ......