DB database
数据库:按照某种数据类型将数据组织并存储的仓库
DBMS
数据库管理系统:
用来操作和管理数据库的大型服务软件
复制基本原理流程
主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;
从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中;
从:sql执行线程——执行relay log中的语句;
1、什么是读写分离?
在数据库集群架构中,让主库负责处理事务性查询,而从库只负责处理select查询,让两者分工明确达到提高数据库整体读写性能。当然,主数据库另外一个功能就是负责将事务性查询导致的数据变更同步到从库中,也就是写操作。
2、读写分离的好处?
1)分摊服务器压力,提高机器的系统处理效率
2)增加冗余,提高服务可用性,当一台数据库服务器宕机后可以调整另外一台从库以最快速度恢复服务
MySQL中
myisam与innodb的区别
1.InnoDB支持事物,而MyISAM不支持事物
2.InnoDB支持行级锁,而MyISAM支持表级锁
4.InnoDB支持外键,而MyISAM不支持
5.InnoDB不支持全文索引,而MyISAM支持。
6.InnoDB不能通过直接拷贝表文件的方法拷贝表到另外一台机器, myisam 支持
7.InnoDB表支持多种行格式, myisam 不支持
8.InnoDB是索引组织表, myisam 是堆表
服务进程名:mysqld
默认数据库目录:/var/lib/mysql
默认配置文件: /etc/my.cnf
端口: 3306
登录方式: mysql -u 用户名 -p 密码 -h 指定服务器 数据库
列出当前MySQL有哪些库: show databases;
切换数据库: use 数据库;
列出当前数据库有哪些表: show tables;
查看表结构: desc 数据库;
创建数据库: create database 数据库名;
查看当前所在库: select database();
删除指定名称表: drop table 表名;
修改字段:alter table 表名 动作;
添加字段:add 字段名 类型 约束条件;
修改字段类型: modify 字段名 类型 约束条件;
修改字段名: change 源字段名 新字段名 类型 约束条件;
创建索引: create index 索引名 on 表名(字段名);
插入数据: insert 表名(字段名) values(字段名=值。。。)
更新数据: update 表名
数据类型:
字符型(char(字符数)),
数值型(整数型int,浮点型float(总宽度,小数位数)),
枚举型(enmu(值1,值2,。。。),set),
日期型(date日期,year年份,time时间)
约束条件:
null 允许为空
not null 不允许为空
key 索引类型
default 设置默认值
索引:
索引就像一本书的目录,加快查询记录的速度,降低插入、更新记录的速度
“表名.MYI”为默认索引文件
index 普通索引
unique 唯一索引
fulltext 全文索引
primary key 主键
foreign key 外键