(三)2.1 mysql 数据库对象优化之--数据库引擎选择

来源:互联网 发布:淘宝隐藏导航代码 编辑:程序博客网 时间:2024/05/22 03:25

首先mysql数据库对象包括哪些?


数据库(database)

表(table)

   和我们日常使用的表格类似,由行和列组成,一行数据成为一个记录,它表达具有一定意义的组合。一个数据表是由一个或者多条记录组成,没有任何记录的表称为空表。每个表中通常有唯一的一个主关键字,用于唯一的确定一条记录。

索引(index)

   索引是根据指定的数据库表列建立起来的顺序。提供了快速访问的途径,就像是我们查看新华字典的目录一样,根据目录能很快的查找到字所处的位置。

视图(view)

   视图看上去和表一样,具有一组名字的字段和数据项,但它其实是一张虚拟的表,在数据库中实际上不存在。视图是由查询数据库表产生的,它限制了用户能够看到和修改的数据。由此可见,视图可以控制用户对数据的访问,并能简化数据的显示,即通过视图只显示那些需要的数据信息。
   可以多张表虚拟成一张表,这样在查询的时候直接查询视图这张虚拟表就可以了,不用再多的联合查询了。

图表(diagram)

   其实就是数据表之间的关系示意图,利用它可以编辑表与表之间的关系。如下图所示:

缺省值(default)

   缺省值是在表中创建或者插入数据时,对没有指定其具体值的列或者数据项赋予事先设定好的值。

规则(Rule)

   规则是对表中数据信息的限制,它限制的是表的列。

触发器(trigger)

   触发器是用户定义的SQL事务命令集合。当对一个表机进行插入、更改、删除时,这组命令就会执行。

存储过程(proc)

   存储过程是为了完成特定的功能而汇集在一起的一组sql程序语句,经过编译之后存储在数据库中的sql程序。

用户(User)

   所谓用户就是有权限访问数据库的人。

   从数据库对象说起,首先数据引擎,数据库引擎选择?
   数据库有如下引擎

什么是引擎?

   引擎,engine,生活中引擎很常见,比如飞机引擎,汽车引擎,游戏引擎,搜索引擎,中文搜索引擎,引擎也就是核心的意思,对于机动车来说引擎就是发动机,就是主要核心部件。在数据库中也同样如此,是可以理解为数据库核心部分,核心“部件”。

   mysql常用的引擎包括MYISAM、Innodb和Memory,各自的特点如下:

   1、MYISAM:应用时以读和插入操作为主,只有少量更新和删除,并且对事物的完整性和并发性要去不是很高时选择。MYISAM全表锁,拥有较高的执行速度,并发能力差,占用空间相对较小,mysql5.5 及以下仅MYISAM支持全文索引,不支持事务。

   2、Innodb:行级锁(SQL都走索引查询),并发能力相对较强,占用空间是MYISAM的2.5倍,不支持全文索引(5.6开始支持),支持事务。
事务处理,以及并发条件下要求数据的一致性。除了插入和查询之外,包括很多的更新和删除。(Innodb有效地降低删除和更新导致的锁定)
对于Innodb类型的表来说,影响速度的主要原因是AUTOCOMMIT默认是开启的,如下查询:


        value值为NO标识autocommit开启状态。(http://www.qttc.net/201208175.html)
        没有显式调用BEGIN开始事务,导致每插入一条都自动提交,严重影响了速度。
        我们可以在执行sql前调用begin,多条sql形成一个事务,显示的调用(无论autocommit是开还是关闭状态),将会大大的提高性能。


   Memory:全表锁,存储在内存当中,速度快,但会占用和数量成正比的内存空间且数据在mysql重启时会丢失。数据保存在RAM,快速访问数据,要求表不能太大或者对mysql异常终止后不能恢复数据。
通过命令我们可以看到当前设置mysql默认引擎为Innodb,我们可以通过修改默认引擎来设置mysql存储引擎。(http://www.cnblogs.com/yjwen/archive/2012/05/01/2478124.html





   部分查询于网络....
  



1 0
原创粉丝点击