高性能MySQL
文章平均质量分 91
南祈鸣
这个作者很懒,什么都没留下…
展开
-
MySQL——如何让你的查询更加高效?全方面优化查询数据
查询性能优化优化数据访问 查询不需要的记录 MySQL是先返回全部结果集再进行计算 多表关联时返回全部列 总是取出全部列 去除全部列会让优化器无法完成索引覆盖扫描这类优化 重复查询相同的数据 比较好的方案是:初次查询时将这个数据缓存起来,需要的时候从缓存中取出 衡量查询开销的三个指标:响应时间 扫描的行数 返回的行数响应时间看到时先想想这是否一个合理的值这个查询需要哪些索引,执行计划是什么,需要多少个顺序和随机IO扫描的行数和返回原创 2022-05-26 11:01:16 · 1582 阅读 · 0 评论 -
MySQL——索引概述以及创建高性能索引中常用思想与策略总结
高性能索引索引的类型B-Tree索引MyISAM使用前缀压缩技术使得索引更小InnoDB按照原数据格式进行存储MyISAM索引通过数据的物理位置引用被索引的行InnoDB根据主键引用被索引的行B-Tree通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同B-Tree索引能够加快访问数据的速度,存储引擎不再需要全表扫描来获取需要的数据B-Tree对索引列是按顺序组织存储的,很适合查找范围数据索引对多个值进行排序的依据是CREATE TABLE语句中定义索原创 2022-05-26 10:43:51 · 127 阅读 · 0 评论 -
MySQL——关于表的那些设计与重构优化
MySQL表设计中的陷阱太多的列MySQL的存储引擎API工作时需要在服务器层和存储引擎层之间通过行缓冲格式拷贝数据,然后在服务器层将缓冲内容解码成各个列。从行缓冲中将编码过的列转换成行数据结构的操作代价非常高MyISAM的变长行结构和InnoDB的行结构总是需要转换,转换的代价依赖于列的数量。太多的关联MySQL限制了每个关联操作最多只能有61张表,单个查询最好在12个表以内做关联防止过多使用枚举不要害怕使用NULL当确实需要表示未知值时不要害怕使用NULL范式和反原创 2022-05-26 10:14:43 · 323 阅读 · 0 评论 -
MySQL——关于数据类型的一些基本优化原则
数据类型优化优化原则越小越好:使用可以正确存储数据的最小数据类型简单就好尽量避免NULL:可为NULL的列使得索引、索引统计和值比较都更复杂为列选择数据类型的顺序第一步:确定合适的大类型:数字、字符串、时间等第二步:选择具体类型整数类型如果存储整数,可以使用:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT整数运算一般使用64位的BIGINT整数,MySQL为整数指定宽度没有意义,只是规定了MySQL的一些交互工具用来显示字符的个数实数类原创 2022-05-26 09:55:09 · 182 阅读 · 0 评论 -
MySQL——逻辑架构知识梳理与精华点睛
MySQL逻辑架构最上层不是MySQL独有的 负责连接处理、授权认证、安全等等第二层是核心服务功能,包括查询解析、分析、优化、缓存以及所有的内置函数,所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等第三层包含存储引擎。服务器通过API与存储引擎进行通信。存储引擎不会去解析SQL,不同存储引擎之间也不会相互通信。第一步:连接管理与安全性第二步:优化与执行解析查询,并创建内部数据结构(解析树),然后对其进行各种优化,包括重写查询、决定表的读取顺序,以及选择合适的索引.原创 2022-05-26 09:47:08 · 83 阅读 · 0 评论