当前位置: 首页 > article >正文

读书笔记-高性能mysql(理解mysql知识点)

第一章, mysql架构和历史

  • mysql架构图, mysql是客户端/服务器的c/s架构
mysql架构图
  • 事务的四个标准
    1. 原子性: 一个事务是一个不可分割的最小工作单元,整个事务的所有操作要么全部提交成功, 要么全部失败回滚.
    2. 一致性: 数据库总是从一个一致性的状态转换到另一个一致性的状态.
    3. 隔离性: 一个事务所做的修改在最终提交以前,对其他事务不可见.
    4. 持久性: 一旦事务提交, 则其所做的修改就会永久保存到数据库中
  • 一个支持事务功能的数据库, 需要更加强大的cpu和更大的内存, 磁盘空间. 所以,根据业务是否需要事务处理, 来选择合适的存储引擎. 可以获得更高的性能
  • 隔离的四个级别:, 未提交读, 提交读, 可重复读, 串行化, 默认级别是可重复读
  • mysql服务器层不管理事务,事务是由下层的存储引擎实现的,所以在同一个事务中,使用多种存储引擎是不可能的
  • mysql的大多数事务型存储引擎实现的都不是简单的行级锁, 基于提升并发性能的考虑, 它们一般都同时实现了多版本并发控制(MCC)
  • innodb表是基于聚簇索引建立的, 对主键查询有很高的性能,但是二级索引中必须包含主键列.
  • 如果转换表的引擎, 那么晚将失去原引擎相关的所有特性
  • 修改引擎的三种方法:1, alter table. 2, 利用mysqldump导入导出. 3, 创建与查询, insert table innodb_table select * from my myisam_table;

第二章, MySQL基准测试

  • 需要了解的基准测试套件: sysbench, 包括cpu基准测试, 文件I/O基准测试OLTP基准测试(OLTP基准模拟了一个简单的食物处理系统的工作负载)

第三章, 服务器性能剖析

  • 这本书将性能定义为完成某件任务所需要的时间度量, 换句话说, 性能即响应时间
  • 在MySQL当前版本中, 慢查询日志是开销最低、精度最高的测量查询时间的工具, 慢查询带来的开销特别小, 但是会消耗大量的磁盘空间. 所以不要长期启用慢查询日志, 只在需要收集负载样本的期间开启即可
  • MySQL还有另一种查询日志, 叫"通用查询日志", 但很少使用
  • 使用 show profile剖析单条查询

第四章, schema与数据类型优化

  • 选择优化的数据类型: 通常 1, 更小的更好; 2, 简单的更好, 整型比字符操作代价更低; 3,尽量避免NUll, 因为NUll会让mysql更难优化, 可为null的列使索引、索引统计和值比较都更复杂
  • 有符号和无符号使用的相同的存储空间, 并具有相同的性能
  • varchar类型用于存储可变长字符串, 是最常见的字符串数据类型. 它比定长类型更节省空间, 因为它仅使用必要的空间. varchar需要使用1或者2个额外的字节记录字符串的长度. varchar节省了存储空间, 所以对性能也有帮助, 但由于行是变长的, 在update时可能使行变的更长, 导致需要做额外的工作, innodb通过分裂页使行可以放进页内
  • char类型是定长的: MySQL总是根据定义的字符串长度分配足够的空间. 当存储char时, MySQL会删除所有的末尾空格.
  • 数据如何存储取决于存储引擎, 并非所有的存储引擎都会按照相同的方式处理定长和变长字符串. 不过, 填充和截取空格行为在不同的存储引擎是一样的, 因为这是在MySQL服务器层处理的
  • blob和text都是为存储很大的数据而设计的字符串数据类型, 分别采用二进制和字符方式存储
最后编辑于:2025-02-05 20:59:54


喜欢的朋友记得点赞、收藏、关注哦!!!


http://www.kler.cn/a/556255.html

相关文章:

  • Plant Simulation培训教程-双深堆垛机立库仿真模块
  • 遗传算法(GA)是一种基于自然选择和遗传学原理的搜索和优化技术,可以用于调整条件生成对抗网络(cGAN)的参数。
  • 目标检测中单阶段检测模型与双阶段检测模型详细对比与说明
  • 微信问题总结(onpageshow ,popstate事件)
  • [原创](Modern C++)现代C++的关键性概念: 用低内存开销的方式来操作C++标准容器
  • 优先级队列
  • 软考高级《系统架构设计师》知识点(八)
  • 实现“微观自治、中观协作、宏观统筹”的智能生态系统架构
  • 安科瑞能源物联网平台助力企业实现绿色低碳转型
  • My first Android application
  • 【JavaWeb学习Day17】
  • JUC并发—8.并发安全集合一
  • 【精调】LLaMA-Factory 快速开始4 自定义个一个sharegpt数据集并训练
  • 在Spark中,如何使用DataFrame进行高效的数据处理
  • 【Apache Paimon】-- Flink 消费 kafka 数据异常
  • Linux 核心架构与组件(2025更新中)
  • 2024.2.21总结
  • 如何排查服务器 DNS 解析失败的问题
  • 【数据挖掘】可信度
  • 图论 之 最小生成树