0
点赞
收藏
分享

微信扫一扫

mysql的相关命令

Star英 2021-09-25 阅读 107

mysql的存储引擎:
1、 Myisam :不支持事务,在磁盘上存储三个文件 .frm 存储表结构,.MYD(MY DATA) 存储数据,.MYI(MY Index)存储索引。
2、InnoDB :提供事务,但是相比于Myisam 读写速度要慢,并且占用更多的空间存储数据和索引,支持外键。
3、Memory:将数据存储在内存中,访问速度快,但是服务重启数据不会保存。

MEMORY默认使用哈希索引。速度比使用B型树索引快。当然如果你想用B型树索引,可以在创建索引时指定。

注意,MEMORY用到的很少,因为它是把数据存到内存中,如果内存出现异常就会影响数据。如果重启或者关机,所有数据都会消失。因此,基于MEMORY的表的生命周期很短,一般是一次性的。

4、Merge :可以让DBA将一系列等同的Myisam表 以逻辑方式组合在一起,并作为一个对象引用他们。
图片来源网络:


创建表时指定存储引擎:

create table blog (id int,name varchar(20)) engine = 'memory';

查看表的存储引擎:

show create table blog;

修改表的存储引擎:

alter table user engine= myisam;

char & varchar的区别::
char是固定长度的,varchar是可变长度的。
例如:char(10) 如果 字符串长度不足10 会在后面补空格,varchar不会。

查看mysql支持的字符集:

show character set;

查看数据库字符集:

show create database database_name;

查看表字符集:

show create table table_name;

查看字段字符集:
show full columns from table_name;

查看事务隔离级别:

select @@global.tx_isolation;

创建用户:

create user 'wangxh'@localhost identified by 'root';

给用户授权:

grant privileges on databasename.tablename to ’username‘@‘host’;

mysql删除表:
1、delete:删除表数据,支持条件过滤,支持回滚。记录日志,所以比较慢。

delete from table_name;

2、truncate:仅删除所有数据,不支持条件过滤,不支持回滚。不记录日志,所以比delete快。

truncate table table_name;

3、drop:删除表的同时删除数据,将表所有占得空间都删掉,效率最高。

drop table table_name;

like 走索引吗?
xxx% 走, %xxx不走。

随机获取一条数据:

select * from table_name order by rand() limit 1;

查看当前表有哪些索引:

show index from table_name;

获取sql语句执行计划

explain sql;

count() 在不同引擎上的不同实现。
myisam:表一个表的总行数存储在磁盘上,查询时直接返回,效率很高、
InnoDB:执行count(
) 的时候,需要把数据一行一行的查出来然后累积计数。

举报

相关推荐

0 条评论