mysql 数据库设计

阿斯达德萨0

阿斯达德萨0

2016-02-19 09:56

有了下面这个mysql 数据库设计教程,不懂mysql 数据库设计的也能装懂了,赶紧get起来装逼一下吧!
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了,并发和读写操作 没提升,数据也是会逐渐累计超过限制。

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

猜你喜欢

mysql 数据库设计

编程语言 网络编程
mysql 数据库设计

MySQL数据库备份

MySQL mysql数据库
MySQL数据库备份

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

MySQL数据库规范化设计

编程语言 网络编程
MySQL数据库规范化设计

用MySQL创建数据库和数据库表

编程语言 网络编程
用MySQL创建数据库和数据库表

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQL Server数据库导入MySQL数据库体验

MySQL mysql数据库
SQL Server数据库导入MySQL数据库体验

MySQL数据库技术(13)

编程语言 网络编程
MySQL数据库技术(13)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

非常漂亮的让背景如此暗淡(一种弹出提示信息时页面背景色调改变的方法)

非常漂亮的让背景如此暗淡(一种弹出提示信息时页面背景色调改变的方法)

Windows 8 IE 10 SmartScreen怎么关闭?

Windows 8 IE 10 SmartScreen怎么关闭?
下拉加载更多内容 ↓