MySQL学习笔记(二)
服务器性能剖析 1、性能指标 基准测试是针对系统设计的一种压力测试。 吞吐量: 单位时间内的事务处理数(TPS) 响应时间或延迟 并发性 可扩展性 SHOW STATUS 和SHOW PROCESSLIST 命令 tcpdump Schema与数据类型优化 数据类型选择 更小的通常更好,占用更少的磁盘、内存和CPU缓存。 简单就号,占用更少的CPU周期。如整型比字符操作代价更低。 尽量避免NULL。查询中包含NULL列,优化会更困难,索引、索引统计和值都会变的复杂。可为NULL的列会使用更多的存储空间。 如果计划在列中建索引,应尽量避免可谓NULL的列。 BLOB和TEXT区别在于BLOB存储的是二进制数据,没有排序规则和字符集,而TEXT类型有字符集和排序规。MySQL只对每个列的最前max_sort_length字节做排序。不能将列全部长度做索引,也不能使用这些索引消除排序。如果EXPLAIN执行计划中Extra列包含“Using temporary” 则说明这个查询使用了隐式临时表。 schema设计 不可有太多的列: 存储引擎API工作时需要在服务器层和存储引擎层之间通过行缓冲格式拷贝数据,然后再服务器层将缓冲内容解码成各个列。从行缓冲中将编码过的列转换成行数据结构的操作代价是非常高的。 不可进行太多的关联: 单个查询最好再12个表以内做关联。在设计的时候最好向单表查询靠拢