MySQL--高性能MySQL笔记一

mac2022-06-30  23

链接管理与安全性: 每个客户端连接都在服务器进程中拥有一个线程。 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当作字符串类型。          

转载于:https://www.cnblogs.com/jsersudo/p/11398662.html

相关资源:高性能MySQL笔记
最新回复(0)