zoukankan      html  css  js  c++  java
  • MySQL--高性能MySQL笔记一

    链接管理与安全性:
    每个客户端连接都在服务器进程中拥有一个线程。
    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当作字符串类型。
     
     
     
     
     
  • 相关阅读:
    Median Value
    237. Delete Node in a Linked List
    206. Reverse Linked List
    160. Intersection of Two Linked Lists
    83. Remove Duplicates from Sorted List
    21. Merge Two Sorted Lists
    477. Total Hamming Distance
    421. Maximum XOR of Two Numbers in an Array
    397. Integer Replacement
    318. Maximum Product of Word Lengths
  • 原文地址:https://www.cnblogs.com/jsersudo/p/11398662.html
Copyright © 2011-2022 走看看