安装的mysql的版本:
Server version:         5.1.57-community MySQL Community Server (GPL)查看 默认的表类型,是InnoDB类型。若要更改表类型为MyISAM,我所知道的是能在my.ini配置文件下修改 default-storage-engine=MyISAM,重启服务,就可以修改了。问题是:除了可以在my.ini配置文件下修改外,可以在命令行的方式修改吗?
也就是相当于修改my.ini中default-storage-engine的方法有吗?
另外:谈谈InnoDB类型 和 类型为MyISAM 这两种表类型 各自优缺点?你们知道的有哪些。

解决方案 »

  1.   

    alter table tablename type MyISAM
    innodb支持事务
      

  2.   

    另外:谈谈InnoDB类型 和 类型为MyISAM 这两种表类型 各自优缺点?你们知道的有哪些。
    百度一下大把这样的资料。
      

  3.   

    问题是:除了可以在my.ini配置文件下修改外,可以在命令行的方式修改吗?
    ALTER TABLE  `table` ENGINE = MYISAM
    谈谈InnoDB类型 和 类型为MyISAM 这两种表类型 各自优缺点?
    InnoDB类型 与 MyISAM  还是很大差异的。MyISAM 类型的表查询数据比InnoDB类型的快好多倍。查询多使用MyISAM。
    操作多使用InnoDB。我知道就这么多。=_=
      

  4.   

    MySQL支持数个存储引擎作为对不同表的类型的处理器。MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎: ·         MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。MyISAM在所有MySQL配置里被支持,它是默认的存储引擎,除非你配置MySQL默认使用另外一个引擎。 ·         MEMORY存储引擎提供“内存中”表。MERGE存储引擎允许集合将被处理同样的MyISAM表作为一个单独的表。就像MyISAM一样,MEMORY和MERGE存储引擎处理非事务表,这两个引擎也都被默认包含在MySQL中。 注释:MEMORY存储引擎正式地被确定为HEAP引擎。·         InnoDB和BDB存储引擎提供事务安全表。BDB被包含在为支持它的操作系统发布的MySQL-Max二进制分发版里。InnoDB也默认被包括在所有MySQL 5.1二进制分发版里,你可以按照喜好通过配置MySQL来允许或禁止任一引擎。·         EXAMPLE存储引擎是一个“存根”引擎,它不做什么。你可以用这个引擎创建表,但没有数据被存储于其中或从其中检索。这个引擎的目的是服务,在MySQL源代码中的一个例子,它演示说明如何开始编写新存储引擎。同样,它的主要兴趣是对开发者。·         NDB Cluster是被MySQL Cluster用来实现分割到多台计算机上的表的存储引擎。它在MySQL-Max 5.1二进制分发版里提供。这个存储引擎当前只被Linux, Solaris, 和Mac OS X 支持。在未来的MySQL分发版中,我们想要添加其它平台对这个引擎的支持,包括Windows。 ·         ARCHIVE存储引擎被用来无索引地,非常小地覆盖存储的大量数据。 ·         CSV存储引擎把数据以逗号分隔的格式存储在文本文件中。 ·         BLACKHOLE存储引擎接受但不存储数据,并且检索总是返回一个空集。 ·         FEDERATED存储引擎把数据存在远程数据库中。在MySQL 5.1中,它只和MySQL一起工作,使用MySQL C Client API。在未来的分发版中,我们想要让它使用其它驱动器或客户端连接方法连接到另外的数据源。 寻求选择一个存储引擎的帮助,请参阅14.4节,“选择一个存储引擎”。 这一章讲述除NDB Cluster外的每一个MySQL存储引擎,NDB Cluster在第17章:MySQL Cluster中介绍。 当年创建一个新表的时候,你可以通过添加一个ENGINE 或TYPE 选项到CREATE TABLE语句来告诉MySQL你要创建什么类型的表:CREATE TABLE t (i INT) ENGINE = INNODB;CREATE TABLE t (i INT) TYPE = MEMORY;虽然TYPE仍然在MySQL 5.1中被支持,现在ENGINE是首选的术语。 如果你省略掉ENGINE或TYPE选项,默认的存储引擎被使用。一般的默认是MyISAM,但你可以用--default-storage-engine或--default-table-type服务器启动选项来改变它,或者通过设置storage_engine或table_type系统变量来改变。当MySQL被用MySQL配置向导安装在Windows平台上,InnoDB存储引擎替代MyISAM存储引擎作为替代,请参阅2.3.5.1节,“介绍”。 要把一个表从一个类型转到另一个类型,可使用ALTER TABLE语句,这个语句指明新的类型:ALTER TABLE t ENGINE = MYISAM;ALTER TABLE t TYPE = BDB;请参阅13.1.5节,“CREATE TABLE语法”和13.1.2节,“ALTER TABLE语法”。 如果你试着使用一个未被编译进MySQL的存储引擎,或者试着用一个被编译进MySQL但没有被激活的存储引擎,MySQL取而代之地创建一个MyISAM类型的表。当你在支持不同存储引擎的MySQL服务器之间拷贝表的时候,上述的行为是很方便的。(例如,在一个复制建立中,可能你的主服务器为增加安全而支持事务存储引擎,但从服务器为更快的速度而仅使用非事务存储引擎。) 在不可用的类型被指定时,自动用MyISAM表来替代,这会对MySQL的新用户造成混淆。无论何时一个表被自动改变之时,产生一个警告。 MySQL总是创建一个.frm文件来保持表和列的定义。表的索引和数据可能被存储在一个或多个文件里,这取决于表的类型。服务器在存储引擎级别之上创建.frm文件。单独的存储引擎创建任何需要用来管理表的额外文件。一个数据库可以包含不同类型的表。事务安全表(TST) 比起非事务安全表 (NTST)有几大优势:·         更安全。即使MySQL崩溃或遇到硬件问题,要么自动恢复,要么从备份加事务日志恢复,你可以取回数据。 ·         你可以合并许多语句,并用COMMIT语句同时接受它们全部(如果autocommit被禁止掉)。·         你可以执行ROLLBACK来忽略你的改变(如果autocommit被禁止掉)。 ·         如果更新失败,你的所有改变都变回原来。(用非事务安全表,所有发生的改变都是永久的)。 ·         事务安全存储引擎可以给那些当前用读得到许多更新的表提供更好的部署。虽然MySQL支持数个事务安全存储引擎,为获得最好结果,你不应该在一个事务那混合不同表类型。如果你混合表类型会发生问题,更多信息请参阅13.4.1节,“START TRANSACTION, COMMIT和ROLLBACK Syntax”。如果你没有指定配置值的话,InnoDB使用默认的配置值。请参阅15.2.3节,“InnoDB配置”。 非事务安全表自身有几个优点,因为没有事务开支,所有优点都能出现:·         更快·         需要更少的磁盘空间·         执行更新需要更少的内存你可以在同一个语句中合并事务安全和非事务安全表来获得两者最好的情况。尽管如此,在autocommit被禁止掉的事务里,变换到非事务安全表依旧即时提交,并且不会被回滚。
      

  5.   

    ALTER TABLE `table` ENGINE = MYISAM
    差距  太多了 从基本的结构,到配置,事物,索引,各自支持什么不支持什么,缓存等很多都不一样,怎么说的清楚,还是自己看帮助文档吧
      

  6.   

    哦耶。借贴顺便问下各位高手
    有没好的mysql书推荐? 
    以后我就专mysql方向。
      

  7.   

    高性能MYSQL不错,就是翻译太烂,有些要自己理解
      

  8.   


    哦哦 错了 我说10楼的……不好意思。 还有好像就 高性能mysql用的比较多……,问题是它好像不适合初学的啊,我也在找……
      

  9.   

    这几天在给个项目建表 如果外键的话 是必须把表类型改成InnoDB吗?  必须建索引吗?
      

  10.   

    现在 type=的关键字不能用了