MYSQL数据库设计的一些小技巧[整理] 有感

原创 2008年11月04日 20:05:00

选表类型:
mysql的myisam表适合读操作大,写操作少;表级锁表
innodb表正好相反;行级锁表
互联网服务,不算支付性的服务外,互动产品,新闻系统等等一般都是读多,写少。用myisam表比较合适。

表的设计
定长表:所有列的字段长度都是定长的。可以去查mysql的手册不定长字段是VARCHAR、BLOB或TEXT。int char都是定长的,定长表占用空间会大。
动态表:就是字段不是都定长的。
定长表要比动态表检索速度快。

软件系统的设计习惯是把每张表都分清很明确的功能,比如用户表都是用户信息,如果需要同时从留言表取数据,又从用户表取用户信息的时候,就会采用联合查 询,有的时候一些操作还会用left,join等各种复杂sql语句,没准还要用mysql的函数。如果是针对访问量,读取量很大的互联网服务时,同时并 发去读,数据量又大,很可怕。最好是如果数据不会修改,在常用的表上有冗余字段,能够做到一次读,把数据都拿到;可以有冗余的写操作,但减少复杂的查询操 作。

在设计表的时候要将这个表的所有字段类型占用的字节数求和,并乘以你的预期(如:存储100W数据量),就是整张表未来会占用容量。

拆表 拆库
拆表就是将一张表复制N多张,里面分别存放不用内容的数据,数据的存放是用HASH算法来决定放入哪张表。
例如用户表user,传统情况就是一张表,拆表就是将表复制为user_01,user_02等里面都存放了格式一样的不同用户数据。

拆库和拆表类似,就是库的复制。

拆表或拆库有很多的HASH算法,主要目的就是减少表的数据量,用算法保证每个表的数据量平均,请求,读写操作被分摊降低压力,而且安全,出了问题最多是一部分用户受影响。缺点就是检索不方便,需要另想办法。

很多网站为了前期省事都会采用discuz的产品,如bbs,blog等,网上有不少关于这个产品的介绍和优化方法,没细研究过,听过一些网站介绍他们的 优化方法时,对于数据库主要是采用主从的方法,将数据库的读写分离来提高性能,但是个人觉得这种办法在数据量到了规模的时候就OVER了,并发和读写操作 没提升,数据也是会逐渐累计超过限制。

互联网服务由于要应对大数据量,大请求量,所以在设计开发的时候就不要太学院派,不要力图达到数据库、程序的设计“优美”,性能是最要紧的。

 

也就是快慢表的拆分,如果这个用户是活动频繁用户,放块表;2,很长时间才登录,放慢表..

  细想WOW的登录检索,那叫个快啊..这方面值得研究.

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

MySQL数据库知识整理归纳

数据库创建需要考虑的内容
  • cz28274815
  • cz28274815
  • 2014年09月04日 22:21
  • 705

MySQL的 data_free,表碎片整理

在MySQL中,我们经常会使用VARCHAR、TEXT、BLOB等可变长度的文本数据类型。不过,当我们使用这些数据类型之后,我们就不得不做一些额外的工作——MySQL数据表碎片整理。 每当MySQL...
  • YABIGNSHI
  • YABIGNSHI
  • 2016年11月30日 12:39
  • 3379

数据库学习感悟

这学期的课还蛮有意思的,数据库按往常来说会开成access,不过老师比较有趣,直接给我们开SQL,说是同时把两门学会,数据库的课每周有一次,三节小课连上,我听得还算认真把。反正就是一直在认真听,没有多...
  • probon
  • probon
  • 2016年04月12日 23:23
  • 749

mysql数据库设计基本经验

MySQL数据库设计经验分享 其实这个经验分享并不仅仅针对MySQL,之所以加上这个关键字其实是为了给搜索引擎看的,呵呵。这篇文章的目标是为了拓宽新手的思路,对于老鸟可能没什么帮助了。 文章主要涉...
  • jayhuang44754019
  • jayhuang44754019
  • 2014年12月21日 11:45
  • 770

mysql数据库设计学习---数据库设计规范化的五个要求

mysql数据库设计学习---数据库设计规范化的五个要求 一:表中应该避免可为空的列; 二:表不应该有重复的值或者列; 三: 表中记录应该有一个唯一的标识符    在数据库...
  • haiross
  • haiross
  • 2015年12月29日 16:06
  • 2272

开发宝典:数据库设计技巧,你知道几个?

数据库是整个系统的核心,它的设计直接关系系统执行的效率和系统的稳定性。因此在软件系统开发中,数据库设计应遵循必要的数据库范式理论,以减少冗余、保证数据的完整性与正确性。在数据库的设计过程中还是存在一些...
  • u013126379
  • u013126379
  • 2016年09月08日 21:43
  • 2384

mysql 数据库表结构设计与规范

mysql 数据库表结构设计与规范DDL(data difinition language)就是数据定义语言。1.sql语句的界定符[code]– 默认情况下” ; ” 代表sql语句的结束 del...
  • qq632544991p
  • qq632544991p
  • 2017年06月06日 15:00
  • 860

MYSQL数据库设计和数据库设计实例(三)

数据库设计----概念结构设计   1>将需求分析得到的用户需求抽象为信息结构,这个信息结构就是概念设计。 概念设计的过程就是概念结构设计 它是整个数据库设计的关键。  ...
  • u012377333
  • u012377333
  • 2015年01月29日 13:52
  • 1540

【MySQL之设计表(二)】一个典型的数据库设计问题

假如我有好多间房屋,每个房屋需要收不同的费用,如管理费、网费、电费、水费...等。但是每间房屋的收费标准和收费项目都不一样。而且,很有可能以后还会增加其它费用。有的要收网费,有的不需要收网费。怎样设计...
  • cangchen
  • cangchen
  • 2015年05月12日 18:13
  • 2493

整理牛人看文献的方法

总结一[1]          (从phd到现在工作半年,发了12篇paper,7篇firstauthor.)          我现在每天还保持读至少2-3篇的文献的习惯。读文献有不同的读法。但最...
  • zjxiaolu
  • zjxiaolu
  • 2015年05月06日 01:56
  • 2330
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MYSQL数据库设计的一些小技巧[整理] 有感
举报原因:
原因补充:

(最多只允许输入30个字)