链接管理与安全性:
每个客户端连接都在服务器进程中拥有一个线程。
MySQL5.5以及更新的版本提供了一个API,支持线程池插件,可以使用池中少量的线程服务大量的链接。
认证基于用户名、密码和原始主机信息。
 
并发控制:
在处理并发读或者写时,可以通过实现一个由两种类型的锁组成的锁系统来解决问题,这两种类型的锁通常被称为共享锁(shared lock)、排他锁(exclusive lock)。也叫读锁或者写锁。
 
锁策略:
在锁的开销和数据的安全性之间寻求平衡,一般都是在表中施加行级锁(row-level-lock)。
 
表锁和行级锁
事务:一组原子性的sql查询,一个独立的工作单元。如果数据库引擎能够成功的对数据库应用该组查询的全部语句,那么就执行该组查询。

ACID:原子性atomicity 一致性consistency 隔离性isolation 持久性 durability
 
四种隔离级别:
READ UNCOMMITTED 未提交读 : 事务中的修改,即使没有提交,对于其他事务也都是可见的。事务可以读取未提交的数据,脏读。
READ COMMITTED 提交读: 大多数数据库的默认隔离级别, read committed ,但是MySQL不是。一个事务从开始到提交之前,所做的任何修改对其他事务都是不可见的。
REPEATABLE READ 可重复读 : 解决了脏读的问题,保障了在同一个事务中多次读取同样的记录结果一致。解决不了幻读问题(当某个事务在读取某个范围内的记录的时候,另一个事务又在该范围内插入了新的记录)。 可重复读是MySQL默认的事务隔离级别。
SERIALIZABLE 可串行化 : serializable是最高级的隔离级别。
 
MVCC 多版本并发控制。
 
InnoDB 存储引擎:InnoDB存储引擎是MySQL的默认事务性引擎,也是最重要,最广泛的存储引擎。
 
MyISAM 存储引擎: 不支持事务和行级锁。奔溃后无法完全恢复。
TPS:每秒事务数。
 
 
Scherma 与数据类型优化:
存储数据选择正确的数据类型: 更小的,占用跟少的磁盘、内存和CPU缓存。简单就好,使用MySQL内建的类型来存储日期时间,使用整形存储IP地址。尽量避免NULL,
 
timestamp只是用datetime 一半的存储空间。但允许的时间范围小的多。
 
对于存储来说INT(1)和INT(20)是一样的。
 
BLOB和TEXT 都是为了 存贮更大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储。
与其他类型不同,MySQL把每个blob和text值当作一个独立的对象处理。
 
MySQL提供了FROM_UNIXTIME() 函数把unix时间戳转换为日期,并提供了UNIX_TIMESTAMP() 函数把日期函数转换为unix 时间戳。
 
TIMESTEMP的列默认为 NOT NULL ,没有指定列的值则默认为当前时间。
 
mysql把BIT当作字符串类型。
 
 
 
 
 

MySQL--高性能MySQL笔记一的更多相关文章

  1. MySQL高性能学习笔记

    索引 何为索引?有什么作用? 索引是一种用于快速查询和检索数据的数据结构.常见的索引结构有: B 树, B+树和 Hash. 索引的作用就相当于目录的作用.打个比方: 我们在查字典的时候,如果没有目录 ...

  2. 《高性能MySQL》读书笔记--锁、事务、隔离级别 转

    1.锁 为什么需要锁?因为数据库要解决并发控制问题.在同一时刻,可能会有多个客户端对表中同一行记录进行操作,比如有的在读取该行数据,其他的尝试去删除它.为了保证数据的一致性,数据库就要对这种并发操作进 ...

  3. 《高性能MySQL》笔记——MySQL建表数据类型的选择

    前段时间看了<高性能MySQL>中的选择优化的数据类型,这里主要是做一下笔记. 首先数据选择有几个简单原则: 更小的通常更好.一般情况下,应该尽量使用可以正确存储数据的最小数据类型.例如只 ...

  4. 【高性能Mysql 】读书笔记(三)

    第5章 创建高性能的索引 本文为<高性能Mysql 第三版>第四章读书笔记,Mysql版本为5.5 索引基础 索引的重要性:找一本800面的书的某一段内容,没有目录也没有页码(页码也可类比 ...

  5. 【高性能Mysql 】读书笔记(二)

    第4章 Schema 与数据类型优化 本文为<高性能Mysql 第三版>第四章读书笔记,Mysql版本为5.5 选择优化的数据类型 选择合适数据类型的三个原则 更小的通常更好 - 速度更快 ...

  6. 高性能MySQL --- 读书笔记(1) - 2016/8/2

    此书不但帮助MySQL初学者提高使用技巧,更为有经验的MySQL DBA指出了开发高性能MySQL应用的途径.全书包括14章,内容覆盖MySQL系统架构.设计应用技巧.SQL语句优化.服务器性能调优. ...

  7. 高性能mysql学习笔记

    此文已由作者朱笑天授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 笔者在工作之余阅读了一下高性能mysql,以下的内容对mysql的介绍以及书中涉及一些概念的总结归纳. 1. ...

  8. 【高性能Mysql 】读书笔记(一)

    第1章 Mysql架构与历史 MYSQL最重要.最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理( Query Processing)及其他系统任务( Server Task)和数据的存储 ...

  9. 1121高性能MySQL之运行机制

    本文来自于拜读<高性能MySQL(第三版)>时的读书笔记作者:安明哲转载时请注明部分内容来自<高性能MySQL(第三版)> MySQL的逻辑构架 MySQL服务器逻辑架构 最上 ...

  10. 高性能mysql:创建高性能的索引

    本文系阅读<高性能MySQL>,Baron Schwartz等著一书中第五章 创建高性能的索引的笔记,索引是存储引擎用于快速找到记录的一种数据结构. 索引对于良好的性能非常关键,尤其是当表 ...

随机推荐

  1. Python 的with关键字

    Python 的with关键字 看别人的代码时,with关键字经常会出现,博主决定梳理一下with以及python中上下文(context)的概念 1. 上下文管理器概念 Context Manage ...

  2. slab分配object

    在numa架构下,slab分配object: 3192static __always_inline void * 3193__do_cache_alloc(struct kmem_cache *cac ...

  3. ubuntu安装相关

    安装系统参考:http://xinzhi.wenda.so.com/a/1523530837610141 首先进行更新源 sudo apt-get update 安装codeblocks sudo a ...

  4. distinct 与group by 去重

    mysql中常用去重复数据的方法是使用 distinct  或者group by ,以上2种均能实现,但2者也有不同的地方. distinct 特点: 如:select  distinct   nam ...

  5. spring boot系列(五)spring boot 配置spring data jpa (查询方法)

    接着上面spring boot系列(四)spring boot 配置spring data jpa 保存修改方法继续做查询的测试: 1 创建UserInfo实体类,代码和https://www.cnb ...

  6. <li>元素的排序

    要点: getElementsByTagName("li")返回的是HTMLCollection对象,这个对象不同于Array对象,不能使用sort()方法进行排序~ 下面方法的要 ...

  7. php进阶之路 -- 03 命名空间

    php进阶之路 -- 03 命名空间 命名空间概述 定义命名空间 空间成员和子空间 空间成员的访问 空间引入 全局空间 一. 命名空间概述 什么是命名空间?从广义上来说,命名空间是一种封装事物的方法. ...

  8. android webkit 初始化流程

    以android 4.2为例 1, android 4.2中 WebViewClassic.java 为 WebView.java的代理类. 2,程序运行后,浏览器首先加载webkit so. Web ...

  9. 【图像-视频处理】YUV420、YV12与RGB24的转换公式

    bool YV12ToBGR24_Native(unsigned char* pYUV,unsigned char* pBGR24,int width,int height) { if (width ...

  10. JAVA实验三及总结

    JAVA第五周作业 Java实验报告三 第一题 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) (1).统计该字符 ...