MySQL存储引擎
文章目录
- 本文用python执行SQL语句。
导入python库
import json
import pymysql
from pymysql.converters import escape_string
import pandas as pd
连接数据库
#连接数据库
conn=pymysql.connect(
host="localhost",
port=3306,#端口号
user="root",#数据库用户
password="123456",#数据库密码
#database="world"#要连接的数据库名称
)
cur=conn.cursor()
跳转到指定数据库
sql = """USE PLJNB"""
cur.execute(sql)
cur.fetchall()
介绍
- 是存储数据、建立索引、更新\查询数据等技术的实现方式。
- 是基于表,而不是基于库的,也可以被称为表类型。
- 默认存储引擎:InnoDB
创建表指定存储引擎
CREATE TABLE 表名(
字段1 字段1类型 [COMMENT 字段1注释],
......
字段n 字段n类型 [COMMENT 字段n注释]
)ENGINE=INNODB [COMMENT 表注释];
- 例:
sql = """
CREATE TABLE my_myisam(
id INT,
name VARCHAR(10)
)ENGINE = MyISAM;
"""
cur.execute(sql)
cur.fetchall()
查看当前数据库支持的存储引擎
SHOW ENGINES;
各存储引擎的特点
InnoDB
介绍
- 是一种兼顾高可靠性和高性能的通用存储引擎
- 是默认引擎
特点
- DML操作遵循ACID模型,支持事务;
- 行级锁,提高并发访问性能;
- 支持外键FOREIGN KEY约束,保证数据的完整性和正确性;
文件结构
- xxx.ibd:存储该表的表结构(frm、sdi)、数据和索引。
MySIAM:(用MongoDB替代)
介绍
- 是早期默认存储引擎
特点
- 不支持事务,不支持外键
- 支持表锁,不支持行锁
- 访问速度快
文件结构
- xxx.sdi:存储表结构信息
- xxx.MYD:存储数据
- xxx.MYI:存储索引
Memory:(用redis替代)
介绍
- 数据存储在内存中,断电即破坏,只能作为临时表使用
特点
- 用内存存放
- hash索引(默认)
文件结构
- xxx.sdi:存储表结构信息