db存储及分层
一个db一个文件夹.一张表两个文件frm是存表结构的,ibd是存数据的
连接层: sock ipsql层:存储层:
2018年4月1日 20:53:54小结:
时间太久,抓破脑袋斗争,想不起具体 mysql事务是干嘛的不怕不会,怕的是每次遇到都不会. 靠.... 遇到一次杀一次...
建库建表查表结构插入数据alert修改表结构 增加字段 删除字段 重命名字段事务 transaction: 交易;事务;
start transaction; # 开启事务(注:开启后修改依旧显示已改动的,但是未真正的提交,可回滚)commit; # 提交事务rollback; # 回滚事务,即撤销指定的sql语句(只能回退insert delete update语句),回滚到上一次commit的位置savepoint p1;rollback to p1;
update: 设置值: UPDATE account set balance=balance+5000 WHERE name=”xialv”;alert: 修改表结构 alter table haha rename to people; # 修改表名 alter table people change name people_name char(30); #改列名 alter table people add telnum int first; # 第一列加 alter table people add id1 int first ,add sex char(4) after name; #加字段 alter table people drop sex; # 删一列 alter table people modify name char(20); #修改字段长度
- my.cnf读取顺序
- 观察启动进程(数据目录)
- - 授权用户(建用户/设密码): grant 库.表 --> 人@主机; 回收权限: revoke: http://www.cnblogs.com/iiiiiher/articles/8836193.html 查看用户权限: show grants for 'maotai'@'192.168.2.%'- 查看mysql版本(3种\s; show states;\)- 建库 建表 插入数据- 查看表结构(字段/及建表语句)- 查询某几列- 查看正在执行的sql(show processlist)- server/client字符集- 查询库的最大连接数- 查询库的slow log是否开- 查看库的大小- 库的数据目录(1dir/per库+2个文件/per表)- 查看建表语句show create database test;- 查看用户权限show grants- 关闭mysqlmysqladmin shutdown
: 4大数据类型
约束 索引mysql日常维护
初始化db: (5.6)mysql_install_db: mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql (5.7)mysqld: mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.17 --datadir=/usr/local/mysql-5.7.17/datamysqld_safe: 启动mysql(msyql.server --> mysql_safe --> mysqld): /usr/local/mysql/bin/mysqld_safe & 恢复密码: /usr/local/mysql/bin/mysqld_safe --skip-grant-table &mysqladmin 设置密码: /usr/local/mysql/bin/mysqladmin -u root password '123456'; 修改密码: mysqladmin -uroot -p123456 password 'maotai123'; (sql语句密码函数): update mysql.user set password=PASSWORD('新密码') where User='root'; flush privileges;
sql优化
一主多从, 读写分离慢查询--explain--建索引
sql学习提纲
1.基础sql2,连表 一对多 多对多 left join right join inner join3,存储过程 mysql/pymysql 4,动态执行sql5,函数6,视图,触发器,事务执行计划常用sql分析---------------------手写sql索引orm框架---------------orm帮我写sql
- pymysql- 插入 更新 删除res = excuteres = executemany返回值: 受影响的行数- 查询:res = execute fetchone fetchmany fetchallcoursor.scroll()
- 思路版:建表 虚拟表--视图(view)执行sql: 连带动作--触发器(trigger) 合并执行--事务(transection) 存储过程&函数(procedure) 动态执行sql