端口3306是mysql协议的默认端口,mysql客户机、mysql连接器以及mysqldump和mysqlpump等实用程序使用该端口。端口33060是MySQL数据库扩展接口(MySQLX协议)的默认端口。
Port 3306 is the default port for the MySQL Protocol, which is used by the mysql client, MySQL Connectors, and utilities such as mysqldump and mysqlpump. Port 33060 is the default port for the MySQL Database Extended Interface (the MySQL X Protocol).
------------------------------
单张表1000W行是分水岭(查询速度),要分库分表
mysql初始安装会生成root的随机密码,在log日志中
alter user user() identified by "123456"; //修改登陆密码
约束条件:null,not null,key,default
普通索引,是最基本的索引,它没有任何限制
.唯一索引,索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一
主键索引,一个表只能有一个主键,不允许有空值,不允许重复
外键,让当前表的字段在另一个表中字段值的范围内选择,存储引擎必须时innodb,备参照的字段必须时一种索引
存储引擎
myisam:支持表级锁,适合查询较多的场景,节省资源(当同时访问100行,行级锁要加锁100次,表级锁只需要锁一次),,不支持事务、事务回滚、外键
innodb:支持行级锁,适合写较多的场景,高的并发量 ,,,支持事务、事务回滚、外键
锁粒度(有存储引擎决定):锁的范围,行级锁,页级锁,表级锁
由访问类型决定:读锁(共享锁):支持并发读。。写锁(互斥锁,排它锁):上锁期间不能读写
事务:一次sql操作从开始到结束的过程
事务回滚:在事务执行过程中,任意一步操作失败,都会恢复之前的所有操作(innodb有事务日志文件,未提交的sql命令,和以成功提交的sql命令文件)
事务特性:原子性,一致性,隔离型,持久型
虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行insert、update和delete。因为更新表时,不仅要保存数据,还要保存一下索引文件
备份
物理备份:cp,tar
逻辑:mysqldump --->xx.sql。mysql<xx.sql(命令行),备份时会锁库锁表
XtraBackup,第三方,在先热备份,不会锁库锁表,命令行
完全备份
增量:实时binlog日志(记录出查的所有sql语句,二进制文件),恢复:mysqlbinlog提取sql管道给mysql
差异
主从:
主从同步。
读写分离:
1、(由程序员实现),主写,从读
2、使用Mysql代理服务器(MaxScale),对用户透明
调优:
硬件 cpu 内存 硬盘 带宽
运行参数:最大连接数,连接和断开超时,(理想状态:实时连接数/配置连接数<=85%)
缓存大小(查询缓存,索引缓存)、允许开启和重构使用的线程数量、开表数量(已打开的表/配置 打开的表<=95%)
sql语句优化(程序员)(错误,查询,慢查询日志)
高可用MHA
所有数据库服务器上安装mha_node软件包
在管理主机上安装mha_node和mha_manager软件包(生产环境最好单独方在一台机器上)
命令行启动MHA &,在其中一台master宕机后,会触发配置文件里指定的脚本,将vip配置在新的master上
然后 把宕机的主库修复后添加到集群里, 启动宕机主库的数据库服务器, 把宕机指定为当前主库的从库,把宕机的信息再次写进app1.cnf文件里
然后再次命令行启动MHA
至少3台机器,一主,1主备,1从,一个manger,两node