• Mysql高级用法


    事务

    四大特性
    原子性:一个事务中必须要被视为是不可分割的一个最小单元,整个事务中的所有操作要么都执行成功,要么都执行失败回滚,对于一个事务,不可能只执行其中的一部分,这就是事务的原子性。
    一致性: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密码
    

      

  • 相关阅读:
    C#中两数相除为0的原因
    Keil STM32F4xx_DFP.1.0.8.pack下载链接
    LabVIEW入门第九天(数组和簇)
    C#执行文件抛出异常方法
    C#中两数相除为0的原因
    C#判断文件夹路径是否存在并新建
    C#窗体程序随电脑分辨率自动调整大小
    C#判断文件夹路径是否存在并新建
    C#窗体程序随电脑分辨率自动调整大小
    VisualTreeHelper使用之ListBox模板DataTemplate中CheckBox选中项(WP7.1)
  • 原文地址:https://www.cnblogs.com/djfboai/p/11029007.html
Copyright © 2020-2023  润新知