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的时候指定路径的。所以我们可以指定到不同的磁盘上,解决未来的数据存储瓶颈。很简单很强大。
相关文档:
俺今天这么激动又想写文章的原因是MySQL5.1的发布带来了设计超强动力数据库的强有力的武器,任何MySQL的DBA都应该尽快学习并使用它。俺觉得如果能很好滴使用这个5.1版带来的新特性,DBA可以使自己管理的VLDB(不知道什么是VLDB?告诉你,是好大好大的数据库的意思,Very Large DB)或数据仓库奇迹般的获得巨大的性能提升。 ......
优化MySQL服务器的配置参数,可以提高MySQL数据库的性能,但是对于配置较低的服务器来说,你无论怎么优化配置,都不会得到理想的效果,那就只能提高你硬件配置,来彻底有效地改善服务器的性能。
具体的方法如下:
一、在设置MySQL 时,应该配置其使用静态库而不是共享库。使用共享库的动态二进制系统可节省磁盘空间,但静 ......
返回一个结果全世界都知道怎么处理,关键是返回多个结果集就不好办了,下面有一解决办法
存储过程代码
DELIMITER $$;
DROP PROCEDURE IF EXISTS `test`.`sp_test`$$
CREATE PROCEDURE `test`.`sp_test` ()
BEGIN
select * from `user`.`user` limit 0, 50;
select coun ......
1、显示数据库列表。
show databases;
刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行好作。
2、显示库中的数据表:
use mysql; //打开库,学过FOXBASE的一定不会陌生吧
show tables;
3、显示数据表的结构:
describe 表 ......
1.它可以被分为三类:数字类型日期类和时间类型,字符串类型。
列类型用于描述:
M:指出最大的显示尺寸。最大的合法显示尺寸为255.
D:适用于浮点类型并之初跟随在十进制小数点后的数码的数量。最大的可能值是30,但是不应大于M.
2.方括号("[","]")指出可选的类型修饰符的部分.
*若指定了列类型为ZEROFILL,MYSQL将该 ......