
高性能Mysql
女子甚好
这个作者很懒,什么都没留下…
展开
-
高性能Mysql08-查询执行基础
Mysql客户端/服务器通信协议 客户端和服务器之间的通信协议是 “半双工” 的,一旦一端开始发消息,另一端要接收完整个消息才能响应它。 客户端:用一个单独的数据包将查询传给服务器。这也是为什么当查询的语句很长的时候,参数 max_allowed_packet 就特别重要了。 select @@GLOBAL.max_allowed_packet #查询数据原创 2021-04-21 22:36:46 · 2119 阅读 · 0 评论 -
高性能Mysql07-查询性能优化
为什么查询速度为慢查询性能低最基本的原因是访问的数据太多。重构查询的方式一个复杂查询还是多个简单查询:设计查询的时候一个需要考虑的问题是,是否需要将一个复杂的查询拆分成多个简单查询。在Mysql中运行多个小查询不是问题。切分查询:【案例】:定期清除大量的数据。如果用一个sql一次删除数据的话,则可能需要一次锁住很多数据,占满整个事务日志,耗尽系统资源,阻塞很多小但重要的查询。解决办法:可以通过控制一次性删除1万条数据,多次删除。【注】一次性删除1万条数据一般来说是一个比较高效的而且对服务原创 2021-04-19 21:42:35 · 2104 阅读 · 0 评论 -
高性能Mysql06-Scheme和数据类型优化
Mysql Scheme和数据类型优化良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要执行的查询语句来设计scheme。选择优化的数据类型数据类型小的通常更好。尽量避免NULL,如果计划在该列上创建索引,就应该尽量避免设计成可为NULL的列。简单的数据类型更好:简单的数据类型操作通常需要更少的CPU周期。scheme设计中的陷阱太多的列:Mysql的存储引擎API工作时需要在服务器层和存储引擎层之间通过行缓冲格式拷贝数据,然后在服务层将缓冲内容解码成各个列,这个操作原创 2021-03-29 11:47:13 · 228 阅读 · 1 评论 -
高性能Mysql05
LEFT的用法字符串提取的函数。LEFT(str,len): 表示提取字符串str中从左边开始的字符数。RIGHT(str,len):表示提取字符串str中从右边开始的字符数。INTERVAL 用法INTERVAL:时间间隔,可用作时间加减。-- 表示当前时间的前24小时的时间-- 当前时间: 2021-01-25 22:44:02-- 前24小时的时间为:2021-01-24 22:44:02SELECT NOW() - INTERVAL 24 HOUR时间间隔字面量说明原创 2021-03-29 11:43:34 · 130 阅读 · 1 评论 -
高性能Mysql04-Mysql主键选择和数据库设计
主键 数据类型选择1、整数类型:整数通常是标识列最好的选择,因为快并且可以使用AUTO_INCREMENT。2、字符串类型:应该避免使用字符串类型作为标识列,因为它们很消耗空间,并且通常比数字类型慢。 对于完全随机的字符串,例如MD5()、SHA1()或者UUID()产生的字符串会任意分布在很大的空间内,这会导致INSERT以及一些SELECT语句变得很慢。 以字符串作为主键不如递增的整数好用。Mysql scheme设计1、避免过多的列:Mysql的存储引擎API工作时需要在服务原创 2021-03-29 11:40:23 · 179 阅读 · 0 评论 -
高性能Mysql03-数据类型
数据类型选择1、更小的通常更好 更小的数据类型通常更快,因为它们通常占用更少的磁盘、内存和CPU缓存。但是要确保没有低估需要存储的值的范围。2、简单就好 例如:整型比字符操作代价更低。3、尽量避免NULL 通常情况下最好指定列为NOT NULL,除非真的需要存储NULL值。如果查询中包含可为NULL的列,对Mysql来说更能优化,因为Null的列使得索引、索引统计和值比较都更复杂。如果计划在列上建索引,就应该尽量避免设计成可为NULL的列。数据类型1、整数类型:TINYINT(原创 2021-03-29 11:37:49 · 116 阅读 · 1 评论 -
高性能Mysql02-Mysql存储引擎
Mysql存储引擎1、InnoDBInnoDB是Mysql的默认事务型引擎,除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎。InnoDB是事务型的存储引擎,支持热备份。Mysql的其他存储引擎不支持热备份。2、MyISAMMyISAM提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且在数据库奔溃后无法安全恢复。存储引擎选择事务:如果应用需要支持事务,那么选择InnoDB(或者XtraDB),如果不需要事务,以select和in原创 2021-03-29 11:35:38 · 107 阅读 · 0 评论 -
高性能Mysql01-事务
事务 一个运行良好的事务处理系统,必须具备事务的ACID特性。事务的特性: 原子性(A:atomicity):整个事务中的操作要么全做,要么全部不做。 一致性(C:consistency):数据库总是从一个执行性的状态转换到另一个一致性的状态。 隔离性(I:isolation):通常来说,一个事务所做的修改在最终提交之前,对其它事务是不可见的。 对于其它的事务的可见性有了一个事务的隔离级别概念。 持久性(D:durability):一旦事务提交,则其所做的修改就会永久报错原创 2021-03-29 11:29:00 · 117 阅读 · 0 评论