我面试时没有答上的MYSQL问题

MYSQL的文件存储时是数据库存成目录,数据表存成文件

MYSQL在建表时,选择哪些类型呢?

转一下别人的解释:
ISAM       原来的表处理器    
  MyISAM       全新二进制可移植的表处理器    
  HEAP       用于该表的数据仅仅存储在内存中    
  MyISAM    
  在MySQL   3.23中,MyISAM是缺省表格类型,它是基于ISAM代码并且有很多有用的扩展。索引存储在一个有.MYI(MYindex)扩展名的文件并且数据存储在有.MYD(MYData)扩展名的文件中。你能用myisamchk实用程序检查/修复MyISAM表。见13.4   对崩溃恢复使用myisamchk。

 

 

MySQL具有很多不同的形式,至少有四种不同的版本:MySQL standard、MySQL Max、MySQL Pro以及MySQL Classic。除了许可证以外,MySQL Standard 和 MySQL Pro是完全一样的。MySQL Standard注册在GNU Public License (GPL),而MySQL Pro 是MySQL Standard的商业注册版本。MySQL Max包括一些尖端的和实验性的功能,这些功能不推荐在生产中使用。MySQL Class仅在取得商业许可证后才能使用,并缺少很多重要功能。这类应用程序需要支持像事务和参照完整性(也就是外键)约束这样的关键功能。选择MySQL时,有MySQL Standard或MySQL Pro这两种版本。注意:本文中其它涉及到MySQL的都是指MySQL Standard。(www.mysql.com/products/mysql/index.html页面上提供关于MySQL类型的更多信息)。

MySQL有几种表格类型可供选择,每一种类型都有一些各具优缺点的功能。这些类型分别是ISAM、MyISAM、HEAP、MERGE、BDB和InnoDB。选择类型时要依据许多因素。这些因素包括性能、事务、列锁定和崩溃恢复,当然还不只这些。然而,对该示例应用程序来说,关键的功能是事务和参照完整约束。

只有InnoDB表格类型能满足条件。至少有两种方法可以指定一个InnoDB表格类型。一是用--default-table-type=InnoDB来启动MySQL数据库服务器。这样创建的表格是InnoDB类型。(注意:如果没有指定InnoDB 为默认的表类型,那么默认的表类型则为MyISAM)。另一种方法是在创建表格脚本的数据库描述语言(DDL)中详尽指明表格的类型。(www.mysql.com/doc/en/Table_types.html上提供更多的关于MySQL表格类型的信息)。

MySQL和外部约束有一个特殊特征,即只有列中已经存在索引,才能创建约束。例如,考虑表格Person和Buyer间的一一对应关系。Buyer有一个到Person的外键。Buyer有一个叫Person_Id的列,这是Person表格中列Person_Id的外键。但是只有在Buyer表格的列Person_Id中创建索引后,才能建立外键。否则,创建外键约束将失败。请参考源代码例子中的sem.sql DDL文件(www.sys-con.com/ weblogic/sourcec.cfm中提供源代码)。

不同的操作系统中具有不同的默认数据库权限。例如,Windows操作系统中的默认权限赋予本地用户完整权限,不需要任何用户名和密码。因此,一项重要的确认是能够连接到MySQL数据库服务器引擎。连接的一种方法是利用MySQL编写的客户端程序。另一种方法是通过JDBC和像DbVisualizer这样的程序来完成。(请参见"使用DbVisualizer验证连接性"一节。www.mysql.com/doc/en/Default_privileges.html上有关于默认权限的信息)。

表格名称默认是否区分大小写是基于操作系统而定的。例如,在Windows操作系统中表格的名称是区分大小写的。对于在一个平台上开发而在另一个平台上部署的情况要特别注意。为了避免类似的问题,推荐在启动服务器时设置lower_case_table_names=1。(在www.mysql.com/doc/en/Name_case_sensitivity.html上有关于这个变量的更多信息)。

利用-log选项启动MySQL数据库服务器可以启用MySQL中的日志记录。强烈推荐在启动MySQL时启用日志记录功能。日志记录能启用对由MySQL执行的结构化查询语言(SQL)的监控,并且是调试和故障寻找时的主要工具。(www.mysql.com/doc/en/Query_log.html上提供关于MySQL日志文件更多的信息)。

像默认表格类型和日志这样不同的选项可以由下面几种方法来指定。一是把选项作为命令行参数传给mysqld,MySQL数据库引擎可执行文件。二是在my.inifile或者my.cnf选项文件中指定这些选项。(www.mysql.com/doc/en/Option_files.html上提供关于选项文件以及在哪里放置它们的信息)。

在我们继续操作之前,完成以下几步:
1. 从www.mysql.com/downloads/mysql-4.0.html上下载MySQL。
2. 根据www.mysql.com/doc/en/Installing.html上的指导安装MySQL。
3. 指定附加选项,比如日志记录和表格类型。
4. 启动MySQL(比如使用mysqld-console)。
5. 使用mysql(如mysql-p-u root)验证与服务器之间的连接。注意:如果在本地Windows操作系统中提示需要密码时,只要回车就行了。
6. 利用create database semdb创建一个叫semdb的数据库。
7. 利用semdb来使用semdb数据库。
8. 使用mysql的source命令加载模式,并指定通向sem.sql的完全限定路径(比如source c:/MySQL_WLS/db/sem.sql)。注意:使用正斜杠,就算在Windows操作系统中也要如此。
9.通过使用源代码中提供的grant.sql文件,使用source命令加到grant.sql的完全限定路径来授予权限。注意:使用正斜杠,就算在Windows操作系统中也要如此。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值