高性能MySQL(第4版)(etc.)

书:pan.baidu.com/s/1cSbd-9_-lRtaKirqt1hgwg?pwd=f922

  1. “InnoDB默认为REPEATABLE READ隔离级别,并且通过间隙锁(next-key locking)策略来防止在这个隔离级别上的幻读。”
    • 这句话描述了InnoDB的默认隔离级别和防止幻读的机制。
  2. “幻读,指的是当某个事务在读取某个范围内的记录时,另外一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻行(phantom row)。”
    • 这句话解释了幻读的概念。
  3. “InnoDB和XtraDB存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)解决了幻读的问题。”
    • 这句话说明了InnoDB和XtraDB如何解决幻读问题。
  4. “InnoDB使用两阶段锁定协议(two-phase locking protocol)。在事务执行期间,随时都可以获取锁,但锁只有在提交或回滚后才会释放,并且所有的锁会同时释放。”
    • 这句话描述了InnoDB的两阶段锁定协议。
  5. “MySQL需要的四种基本资源是:CPU、内存、磁盘、网络资源。”
    • 这句话列出了MySQL运行所需的基本资源。
  6. “MySQL为了加快IO,许多事务系统使用提前写日志的策略。提前写日志允许在内存中更改页面,而不用将更改刷新到硬盘上。”
    • 这句话解释了MySQL为加快IO而采用的提前写日志策略。
  7. “写入放大用来描述由于部分块写而导致的数据从一处移动到另一处、多次写入数据和元数据所产生的额外操作。”
    • 这句话描述了写入放大的概念。
  8. “InnoDB的配置最重要的选项是:innodb_log_file_size和innodb_buffer_pool_size。”
    • 这句话指出了InnoDB配置中最重要的两个选项。
  9. “日志配置:innodb_log_file_size、innodb_log_file_in_group,建议使用innodb_dedicated_server,日志文件的大小会根据系统内存来自动管理。”
    • 这句话提供了关于InnoDB日志配置的建议。
  10. “从MySQL 5.6开始,InnoDB引入了在线DDL,它最初只支持有限的使用场景,但在5.7和8.0版本中进行了扩充。就地(in-place)更改schema的机制允许在不使用完整表锁和外部工具的情况下进行特定的表更改操作,这大大提高了MySQL InnoDB表的可操作性。”
    • 这句话描述了InnoDB在线DDL的引入和其对表可操作性的提升。
  11. “MySQL有很多可以更改但是不需要更改的设置。通过建议正确的配置基本设置(在大多数情况下,只有少数设置是重要的),并将更多的时间花在schema优化、索引和查询设计上。”
    • 这句话建议了MySQL配置的优化策略,即关注少数重要设置,并投入更多时间在schema优化、索引和查询设计上。
  12. “太多的联接的查询会很慢,每个查询最好少于十几个的表。小心使用ENUM和SET。如果索引包含很多列,那么列的顺序也很重要。”
    • 这句话提供了关于查询优化和索引设计的建议。

这些原文引用涵盖了《高性能MySQL(第4版)》中关于InnoDB、MySQL资源配置、IO优化、日志管理、在线DDL、配置优化以及查询和索引设计等多个方面的核心观点和理念。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注