mysql系列02
1 | mysql -u user -p passwd |
普遍来说 crud boy
指的是基本的 增查(读)改删
mysql 基本的数据类型
数值型(integer smallint decimal numeric)
近似数值(float real double precision)
日期类型
datetime
date
timestamp
time
year
字符串类型
char
varchar
binary
varbinary
blob
text
enum 枚举
set
空间数据类型(空间类型使用 个人感觉还是 pg 好一些)
json
支持由RFC 7159 规定的原生json数据类型 json列不能有默认值
mysql 的常见问题
索引有哪些类型?(扩展)
索引的原理
mysql系列01
mysql 用户 相关 操作
mysql创建用户和授权
1.创建用户:
(注意:下面的指令,请在root用户下输入)
CREATE USER "用户名" IDENTIFIED BY "密码";
如果要限制地址登录:
例如只允许本地的用户登录@localhost
CREATE USER 用户名@地址 IDENTIFIED BY '密码';
当mysql创建完用户之后,需要对该用户进行授权。授权之后,改用户才能有执行命令的权利!
2.授权
GRANT ALL PRIVILEGES
ON 数据库.*
TO '用户名'@'登录主机'
IDENTIFIED BY "密码";
- grant select,insert,update,delete on . to test1@”%” Identified by “abc”;
- 格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
- 如果想授权用户可以操作所有的数据:.(数据库写为:*)
如果不限制登录主机:’用户名’@’%’(登录主机写为:%)
FLUSH PRIVILEGES;
3.
数据库: 物理操作系统文件或者其他形式文件类型的集合 NDB引擎的时候,可能是存放在内存之中的文件
实例: 由后台线程以及一个共享内存区组成
mysql 是单进程多线程架构的数据库
实例在系统上的表现就是一个进程
读取配置文件的顺序
1 | /etc/my.cnf |
读取到的最后一个配置文件中的参数为准
也就是说会覆盖
数据库所在的路径 默认为 /usr/local/mysql/data
实际上 是一个 链接 指向的是 /opt/mysql_data 目录
实际上很多会问一下 myisam innodb 引擎的对比
innodb 特点
支持行锁、支持mvcc 支持外键 提供一致性非锁定读
5.5.8版本开始为默认引擎
表示目前是最优选择 各个引擎各有优点
innodb 是多线程的模型 后台有多个不同的后台线程 复杂处理不同的任务
master thread 是一个非常核心的后台线程 主要负责将缓存池里的数据异步刷新到磁盘,保证数据的一致性。包括脏页的刷新、合并插入缓冲、undo页的回收等
io thread 大量使用async io来处理io请求 这样可以极大提高数据库的性能
purge thread 主要用来回收已经使用并分配的undo页
page cleaner thread 将脏页的刷新操作都放入到单独的线程来完成