mysql基本语句

mysql逻辑架构

最上层的服务并不是mysql独有的,连接处理、授权认证、安全
第二层:查询解析,分析,优化,缓存以及所有内置函数
所有跨存储功能都在这

连接、线程处理:
    连接管理与安全性:
        每个客户端连接都会在服务器进程中拥有一个线程 ,


查询缓存               解析器

优化器


存储引擎

两种类型的锁通常称为共享锁和排他锁,也叫读锁和写锁

start transaction ;

ACID测试,否则空谈事务的概念是不够的,
表于原子性(atomicity )
一致性,隔离性,持久性

查询是否开启自动提交:
    show variables like '%autocommit%';
设置自动提交:
    set autocommit=1;#设置自动提交,所有的查询者是在一个事务中,直到显式地执行
    commit
    ,直到显示执行
    set autocommit=0;#设置不自动提交
作用说明:

查询数据库的隔离级别:
SELECT @@tx_isolation

查询全局和会话事务隔离级别:

SELECT @@global.tx_isolation;
SELECT @@session.tx_isolation;
SELECT @@tx_isolation;



所有级别
1)read uncommitted : 读取尚未提交的数据 :哪个问题都不能解决
2)read committed:读取已经提交的数据 :可以解决脏读 ---- oracle默认的
3)repeatable read:重读读取:可以解决脏读 和 不可重复读 ---mysql默认的
4)serializable:串行化:可以解决 脏读 不可重复读 和 虚读---相当于锁表

2.2 设置

设置mysql的隔离级别:set session transaction isolation serializable 设置事务隔离级别

set tx_isolation='read-uncommitted';
set @@global.tx_isolation='read-uncommitted';


show table status like 'user'\G
*************************** 1. row ***************************
           Name: user      #表名
         Engine: MyISAM    #表的存储引擎类型
        Version: 10            
     Row_format: Dynamic
           Rows: 5
 Avg_row_length: 81
    Data_length: 552
Max_data_length: 281474976710655
   Index_length: 2048
      Data_free: 144
 Auto_increment: NULL
    Create_time: 2017-10-18 18:47:33
    Update_time: 2017-10-18 18:47:39
     Check_time: NULL
      Collation: utf8_bin
       Checksum: NULL
 Create_options:
        Comment: Users and global privileges


infobright 是mysql数据仓库最成功的解块方案


转换表的引擎:
    有很多种方法可以表的存储引擎转换成另外一种引擎。每种方法都有其优点
    缺点。在接下来的章节。我们将讲述其中三种广东
    
    alter table mytable engine=innodb;
    
    上述的语法可以适用任何存储引擎,但有一个问题:需要执行很长时间
    mysql会按行将数据从原表复制到一张新的表中,在复制期间可能会消耗系统所有I/o能力。同时
    原表上会加上读锁。在繁忙的表上执行此操作要特别的小心
    
    如果转换表的存储引擎,将会失去和原引擎相关的所有特性。
    如果一张innodb表转换成myisam,然后再转换回innodb
    
    导出与导入:
        为了更好地控制转换的过程,可以使用mysqldump工具将数据导出到文件
        然后修改文件中create table 语句的存储引擎
    
    
    创建与查询(create 和select )
    第三种转换的技术结合了第一种方式的高效的第二种方法的安全
    create table innodb_talbe like myism_table;
    alter table innodb_table engine=innodb;
    insert into innodb_table select * from myisam_table;
    
    以上是数据量不大:
    如果数据量比较大的时,可以考虑分批处理针对每一段数据执行事务提交操作
    避免大事务产生过多的undo,假定有主键字段id
    重复运行以下语句
    
    start tansaction;
    insert into innodb_table select * from myism_talbe where id between x and y ;
    commit;
    
    percona toolkit 提供了一个pt-online-schema-change的工具
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值