高性能MYSQL--第一章

来源:互联网 发布:淘宝店铺修改退货地址 编辑:程序博客网 时间:2024/05/31 00:39

MySQL架构与历史

1. Mysql的主要特点?

   MySQL最重要的,最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理及其他系统 任务和数据的存储/提取相分离。这种处理和存储分离的设计可以在使用时根据性能、特性,以及其他需求来选择数据存储的方式。

2.视图,存储过程,触发器的简单理解?

   视图不占物理存储空间,它只是一种逻辑对象。可以看做是一个“虚表”。

   存储过程是一系类预先编译好的,能实现特定数据库操作功能的SQL代码集。

      优点; 重复使用,提高性能 减少网络流量 安全

    触发器是一种实现复杂数据完整性的特殊存储过程。

3.MySQL的逻辑架构?

  最上层的主要使用来连接管理,授权认证,安全。

  第二层包括查询解析,分析优化 ,缓存以及内置函数。

 第三层包括存储引擎(表类型)。存储引擎负责MySQL的数据的存储和提取。

4.读写锁?

  在并发情况下,为了解决数据在操作过程的错乱,引进了锁机制,分为读锁(共享锁)和写锁(排它锁)。根据锁力度分为行锁和表锁。

注意: 写锁比读锁有更高的优先级。

       行锁只在存储引擎层实现,MySQL服务层没有实现。

5事务的特点?

  为了保证数据的完整性,特点有原子性、一致性、隔离性、持久性。

6. 隔离机制?

 未提交读 提交读 可重复读 可串性化  后面三种可以依次解决脏读,不可重复读,幻读。

 较低级别的隔离机制通常有较高的并发,系统的开销也较低。

 可重复读是MySQL的默认事务隔离机制

7.死锁?

死锁是指两个或多个事务在同一资源上相互占用,并请求对方所占用的资源,从而导致恶性循环的现象。

解决时需要有外部因素的介入才能解开,通常两种方法,死锁检测机制和死锁超时机制(innodb)。

锁的行为和顺序是和存储引擎相关的。锁在事务型的系统中是无法避免的。

8.MySQL的存储引擎?

在MySQL5.1及以前的版本,MyISAM是默认的存储引擎,

  MyISAM  : 是旧版本mysql的默认引擎,现在默认引擎是InnoDB。MyISAM引擎的主要特点就是快,没有事务处理操作,也不支持外键操作。适合于多读取插入,少更新删除的操作表。存储数据分成三个文件:.frm(存储表定义) .MYD(存储数据)  .MYI(存储索引)

   InnoDB  :是新版本mysql的默认引擎,支持事务处理和外键,但是其缺点几就是慢了些。存储方式分为两种:1.共享表空间存储。[.frm(表结构) 和 innodb_data_home(数据)和innodb_data_file_path(索引)]   2.多表空间存储。 [.frm(表结构) 和 .idb(数据)  ]。

主要优点?

1.更新密集的表。InnoDB存储引擎特别适合处理多重并发的更新请求。
2.事务。InnoDB存储引擎是支持事务的标准MySQL存储引擎。
3.自动灾难恢复。与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。
4.外键约束。MySQL支持外键的存储引擎只有InnoDB。
5.支持自动增加列AUTO_INCREMENT属性。


在选择合适的存储引擎时,除非需要用到某些Innodb不具备的特性,并且没有其他办法可以替代,否则都应该选择Innodb引擎。



 注意:mysqldump默认会自动在create table 语句前加上drop table语句。

原创粉丝点击