跳至主要內容

MySql 基础总结

Someone大约 2 分钟Databasedatabase

本文主要介绍了 MySql 中涉及到的工具软件,以及 MySql 的查找、插入和删除操作;除此之外还介绍了简单的索引知识和存储引擎;还列举了 DAG 图的设计代码。

Tools: MySql 工具软件

  1. 客户端数据库可视化查询软件 SQLyog
  2. SQL Server 启动程序 XAMPP

MySQL Command

Login

mysql -uroot

use soc;
show tables;

show columns in table_name;
select * from table_name limit 1 \G;

DROP

删除:

DROP DATABASE db_name

DROP TABLE table_name

ALTER TABLE table_name DROP INDEX index_name

如果想删除表中所有的数据但是不影响到表的结构:

TRUNCATE TABLE table_name

ALTER

在数据库中插入新的 table 或者说新的列:

ALTER TABLE table_name
ADD column_name datatype

ALTER TABLE edge
ADD ancestor VARCHAR(256)

删除同理:

ALTER TABLE edge 
DROP COLUMN ancestor

JOIN

在 MySQL 中,主要是 INNER JOIN, 表示内连接,可以同时连接两个表进行组合查询:

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

MySql vs DAG

可以参考这一篇博客,讲述了如何使用 MySql + 邻接表存储一个 DAGopen in new window,代码如下所示:

<<< @/docs/.vuepress/code/sql/DAG.sql

Index 索引

explain

对于建立的索引,想查看其性能如何:

explain select * from tables where c1='a1'and c2='c2';

使用 explain 命令即可。

索引类型

  1. 唯一索引 -- UNIQUE

此索引的每一个索引值只对应唯一的数据记录;索引的值必须唯一,但是允许有空值(注意和主键不同)。

  1. 主键索引

  2. 组合索引

  3. 全文索引

非常消耗磁盘空间

索引内部数据结构

MySQL 数据库可以分为三种类型,分别为:

  1. BTree B+Tree

B 树,即平衡二叉树,是一个二叉树,查找的时候使用二分查找。
B+ 树,Mysql 的索引主要实现结构。

  1. 散列索引

通过 hash 函数来定位的一种索引。

  1. 位图索引

位图索引是一个针对多个字段的简单查询设计一种特殊的索引,适用范围比较小,只适用于字段值固定并且值的种类很少的情况。比如说性别,只有男和女,或者状态等等。

存储引擎

InnoDB

InnoDB 默认是事务存储引擎,默认。

使用 InnoDB 的时候,会将数据表分为 .frm 和 ibd 两个文件进行存储。

行锁设计、支持外检,默认读取操作不会产生锁。

存储引擎采用聚集(clustered)的方式,每张表都是按照主键的形式进行存储的。

MyISAM

不支持事务,表锁设计,支持全文索引,不支持事务。

索引文件 .MYI(MyIndex) 和 数据文件 .MYD(MyData)分离

缓冲池值缓存索引文件,而不缓存数据文件。