1

mysql知识体系庞大,很多知识可能刚学过就忘了,我希望可以在这篇文章记下一些有用的知识点,方便以后查找使用

SQL语句相关

表相关

改表

在修改表操作之前,最好先创建一份表的副本,然后在它的基础上修改。
在test数据库创建表的副本:

CREATE TABLE test.student_new LIKE student;

上面的语句只是复制了表结构,新表还没有数据。要复制表数据,可用INSERT加SELECT。

UES test #切好到test数据库
INSERT INTO test.student_new SELECT * FROM school.student;

现在就可以改表了。

存储引擎

存储引擎:一种数据存取和处理方式。

MySQL 数据库自带了多种存储引擎,每种存储引擎都有独特的特性。当创建MySQL数据库表对象时,可以根据实际需求,为不同访问特点的表对象指定不同的存储引擎,以获取更高的性能和数据处理的灵活性。如果业务的存取需求是确定的,那么可以在系统启动时设置好默认存储引擎,这样在创建表对象时,不必指定,它就会使用默认的存储引擎。

MySQL的存储引擎是一种“插件式存储引擎”(Pluggable Storage Engines)机制。下图是MySQL数据库的体系结构图,图片里红框中的部分是MySQL服务的存储引擎。红框中每个立方体一样的小图标代表着一种存储引擎,大家注意看图标的右下角,还有一个像插头一样的图例,表示存储引擎是可以插拔的。

大家注意到最右侧的“+”好图标了,这代表什么呢,说明这是个可扩展的系统。用户设置可以根据需要,开发出自己的引擎插件。

mysql体系结构.jpg

要查看当前MySQL数据库都支持什么引擎,可以通过SHOW ENGINES命令获取相应信息,具体如下:

mysql> SHOW ENGINES\G
*************************** 1. row ***************************
      Engine: FEDERATED
     Support: NO
     Comment: Federated MySQL storage engine
Transactions: NULL
          XA: NULL
  Savepoints: NULL
*************************** 2. row ***************************
      Engine: MRG_MYISAM
     Support: YES
     Comment: Collection of identical MyISAM tables
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 3. row ***************************
      Engine: MyISAM
     Support: DEFAULT
     Comment: MyISAM storage engine
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 4. row ***************************
      Engine: BLACKHOLE
     Support: YES
     Comment: /dev/null storage engine (anything you write to it disappears)
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 5. row ***************************
      Engine: CSV
     Support: YES
     Comment: CSV storage engine
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 6. row ***************************
      Engine: MEMORY
     Support: YES
     Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 7. row ***************************
      Engine: ARCHIVE
     Support: YES
     Comment: Archive storage engine
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 8. row ***************************
      Engine: InnoDB
     Support: YES
     Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
          XA: YES
  Savepoints: YES
*************************** 9. row ***************************
      Engine: PERFORMANCE_SCHEMA
     Support: YES
     Comment: Performance Schema
Transactions: NO
          XA: NO
  Savepoints: NO
9 rows in set (0.00 sec)

SHOW ENGINES根据使用的MySQL版本和其他因素 ,输出可能会有所不同。

SHOW ENGINES 输出包含以下列:

  • Engine

    存储引擎的名称。

  • Support

    服务器对存储引擎的支持级别,如下表所示。

含义
YES 引擎受支持且处于活动状态
DEFAULT 引擎受支持且为默认存储引擎
NO 不支持该引擎
DISABLED 支持引擎但已被禁用

NO表示服务器在编译时不支持引擎,因此无法在运行时启用。

所有MySQL服务器都支持MyISAM表。无法禁用MyISAM

  • Comment

    存储引擎的简要说明。

  • Transactions

    存储引擎是否支持事务。

  • XA

    存储引擎是否支持分布式事务。

  • Savepoints

    存储引擎是否支持保存点。

INFORMATION_SCHEMA ENGINES表中还提供了存储引擎信息 。请参见MySQL官方文档 第25.12节“ INFORMATION_SCHEMA ENGINES 表

MyISAM存储引擎

在MySQL 5.5版本之前,MyISAM是MySQL数据库表对象的默认存储引擎,就是说创建表对象时,如果没有明确指定存储引擎,那么创建的表对象就会保存为MyISAM引擎表。

MyISAM的一种读法:My-eys-sam。


tusi
106 声望1 粉丝