四大特性
原子性:一个事务中必需要被视为是不可分割的一个最小单元,整个事务中的全部操做要么都执行成功,要么都执行失败回滚,对于一个事务,不可能只执行其中的一部分,这就是事务的原子性。
一致性:mysql数据库老是从一个一致性的状态到达另外一个一致性的状态。好比在执行转帐操做时,转帐前两我的的总和的状态和转帐后两我的的总和的状态是一致的。
隔离性:对于一个事务来讲,在最终提交前,对其余的事务是不可见的。
持久性:一旦提交事务,则其所作的修改会永远的保存到数据库。即便系统崩溃,修改的数据也不会丢失
事务命令
查看表的建立语句,能够看到engine=innodb
use t1
show create table score
开启事务
begin
或者
start transaction
提交事务
commit
回滚事务
rollback
#注意:修改数据的命令会自动的触发事务,好比delete,update,insert
其实,primary_key就是索引,在新建表结构时规定parmary_key便可。若是要增长索引,那么请看下边: 增长索引 ALTER TABLE `student` ADD IDNEX aaa(`class_id`) #添加普通索引 删除全部 drop index aaa on student
# 往数据库增长100000条数据 from pymysql import connect def main(): conn=connect(host='localhost',port=3306,user='root',password='',database='t1',use_unicode=True) cursor=conn.cursor() for i in range(100000): cursor.execute("insert into test_index value('ha-%d')"%i) conn.commit() if __name__ == '__main__': main()
# linux下执行操做
use t1 set profiling=1 #开启时间检测
select * from test_index where title='ha-99999'
show profiles; #查询结果为0.28s
create index title_index on test_index(title(10)); #为表test_index的字段title增长索引
select * from test_index where title='ha-99999'
show profiles; #查询结果为0.07s
# 增长用户权限
增长一个用户,只能够访问t1表中的 “查”功能 mysql -u root -p #登陆root用户 use mysql #mysql中的user表是数据库的权限设置 select host,user from user #查看全部用户的权限
grant select,insert on t1.* to laowang@localhost identified by '123456' #建立laowang用户密码为123456
quit
mysql -u laowang -p #登陆laowang用户
123456 #输入密码
select * from class #成功
insert into class(caption) values('九年级三班') #成功
update class set name='三年级二班' where caption=‘三年二班’ #失败
# 删除用户及权限
drop user laowang@localhost #删除laowang这个用户及权限
select host,user from user #查看,没有了老王用户
#配置主从同步步骤: 1.在主服务器上,必须开启二进制日志机制和配置一个独立的ID 2.在每个从服务器上,配置一个惟一的ID,建立一个用来专门复制主服务器数据的帐号 3.在开始复制进程前,在主服务器上记录二进制文件的位置信息 4.若是在开始复制以前,数据库中已经有数据,就必须先建立一个数据快照(能够使用mysqldump导出数据库,或者直接复制数据文件) 5.配置从服务器要链接的主服务器的IP地址和登录受权,二进制日志文件名和位置 #简而言之版步骤: #主服务器为ubantu,从为windows 1.备份主服务器数据到从服务器; #首先进行数据库备份,再在从服务器上进行还原数据库 2.给主服务器设置一个id值; 3.给从服务器设置id值; 4.设置主服务器的日志文件 5.设置从服务器从哪里读取日志文件
连接:22世纪人工智能/数据库/课件/Python高级-所有(html版)/19day/主从.html
备份 mysqldump -uroot -p 数据库名称> python.sql #按提示输入mysql密码 恢复 链接mysql,建立新的数据库 退出链接,执行以下命令 mysql -uroot -p 新数据库名称 python.sql #按提示输入mysql密码