Mysql基本用法补充
1.DCL 数据控制语言:grant
创建DB user
创建database:
create database test;
创建用户及赋予权限
%:代表所有IP都可以登陆这个账号
grant all privileges on *.* to xk@'%' identified by '123456';
刷新权限:
flush privileges;
2.杀死正在执行的sql:
查看正在执行的sql:
show processlist;
杀死这个连接:
kill + id
3.datetime 和timestamp有什么区别:
相同点:两者都可用来表示 YYYY-MM-DD HH:MM:SS 类型的日期。
不同点:
(1).两者的存储方式不一样:我个人的理解是,datetime存储的就是当前时间,而timestamp是通过客户端插入的时间转换成UTC进行存储,而查询的时候再把它转换成客户端当前时间返回
(2).两者的存储时间范围不一样:
timestamp所能存储的时间范围为:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'。
datetime所能存储的时间范围为:'1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。
参考博客:https://blog.csdn.net/swq463/article/details/93243282
4.Mysql自增主键存储的ID超了怎么办:
看了网上的一些例子,自己总结了一下,一开始我们建立表的自增主键的类型可能是Int类型
int类型的存储范围0~4294967295,约43亿,如果超过这些数据,会报错,如果出现自增主键达到了最大值,可以把主键类型改成BigInt,那么如何在生产中修改字段类型呢:
(1).在Mysql5.6之后Mysql推出了自己原生的语句:
ALTER TABLE table_name CHANGE old_field_name new_field_name field_type,在5.6之前都是重新建立一个新的临时表,然后把数据导入临时表,最后rename
(2).通过工具来实现
参考博客:https://blog.csdn.net/qq_35393693/article/details/100059966
5.InnoDB和MyISAM有什么区别:
首先先介绍下InnoDB:是MySQL的数据库引擎之一,现为MySQL的默认存储引擎,为Mysql AB发布binary的标准之一。InnoDB由Innobase Oy公司所开发,2006年五月时由甲骨文公司并购。与传统的ISAM与MyISAM相比,InnoDB的最大特色就是支持了ACID兼容的事务(Transaction)功能,类似于PostgreSQL
MyISAM介绍:MyISAM是默认存储引擎(Mysql5.1前)。它基于更老的ISAM代码,但有很多有用的扩展。(注意MySQL 5.1不支持ISAM)。 每个MyISAM在磁盘上存储成三个文件,每一个文件的名字均以表的名字开始,扩展名指出文件类型。
那么为什么Mysql在5.1之后把InnoDB设置成默认引擎了呢?:
我个人理解是主要是因为InnoDB的事务功能比较强,MyISAM这个存储引擎只支持表级锁,在增删改查的时候都会给表自动加锁,在加锁以后的表中满足insert的并发情况,则会在数据最后一行插入新的数据,也可以通过命令lock table来锁住此表,这样做主要是为了模仿事务,但是消耗比较大,一般只在实验中进行;而InnoDB则支持行级锁,在执行增删改查的时候只会把你操作的那些行给锁住,并不会应该你其他行的业务操作。
参考博客:https://www.cnblogs.com/y-rong/p/8110596.html