Skip to content

qqq #5

@tzcteddy

Description

@tzcteddy

主要内容:

基本介绍
SQL
体系结构与存储引擎
字段类型
应用系统介绍

MySQL基本介绍
优点:
速度快
特点:
门槛低,简单
群众基础广泛,资料多
免费
存在三个版本:percona、mysql、mariaDB
查看mysql版本

select @@Version
查看mysql进程启动情况
ps -ef|grep mysql
SQL语句
SQL语句可分为两大类:

DML(增删改查)

DDL(所有操作都是原子操作,且不可回滚):CREATE/DROP/TRUNCATE/RENAME/ALTER

DROP删除表,不会回滚
TRUNCATE清空表,不会回滚,速度比delete快
ALTER
add 添加字段、索引
modify/change 修改字段
drop 删除字段、索引
注意:
ALTER修改表时不能对索引进行修改
ALTER在执行过程中会上一个元数据锁,此时所有写操作被阻塞,此类操作需要提单子,然后让DBA用相应工具来操作,才能保证不锁表。
在同一张表上多次对字段或索引进行操作时,可以用逗号分隔,然后连续写,例如:
alter table t52 modify column city varchar(40), add city2 varchar(20);
MySQL体系架构
MySQL是单进程、多线程,所有工作,如刷新日志等都由线程来完成
公司主要使用的引擎:
MyISAM(不支持事务)(由于历史原因仍然在用,更多的用于统计类的应用,但线上事务类的不可以使用)和INNODB(默认)
MyISAM由于不支持事务所以速度比INNODB快
INNODB(行级锁)
MyISAM(表级锁)
存储引擎只能在表一级上指定,库一级无法指定
查看存储引擎:
show engines
字段类型
使用原则:够用原则
数字
整型 INT
定点型 DECIMAL
定义举例:alter table t33(id3 decimal(5,2));
注意:这里5表示整数部分和小数部分加一起的位数,2表示小数部分的位数
注意:DECIMAL和FLOAT、DOUBLE的区别是,DECIMAL存储的是精确值
浮点型 FLOAT DOUBLE

字符类(变长类型也是够用原则,虽然不占用磁盘空间,但会占用内存空间)
CHAR/VARCHAR
VARCHAR在长度小于255时用一个字节来记录长度,在超过255时用两个字节来记录长度
TEXT也是变长,区别是比VARCHAR记录的长度更大
BLOB存储二进制的字符串(不代表它记录的是0和1,只是它没有相关字符集和校验规则的限制)
注意:
TEXT字段不能设置NOT NULL和默认值
TEXT和BLOB都是大数据类型,所以建立索引时只会建立前缀索引,不能建立整个值的索引

时间日期类型
DATE只有日期
范围:1000-01-01到9999-12-31
DATETIME有日期和时间
范围:1000-01-01 00:00:00 到 9999-12-31 23:59:59
TIMESTAMP
1970-01-01 00:00:01 UTC 到 2038-01-19 03:14:07 UTC
总的来说可以使用DATETIME代替TIMESTAMP
存储空间(在5.6.4版本后还加上了小数部分的精度(fractional seconds storage),精度越高,占用空间越大,如下图所示):

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions