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数据库都支持什么引擎,可以通过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。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。