mysql
文章平均质量分 82
Seeker-Wu
这个作者很懒,什么都没留下…
展开
-
mysql5.7官网直译数据类型--日期和时间类型1
11.3 Date and Time Types 日期和时间类型11.3.1 The DATE, DATETIME, and TIMESTAMP Types 日期,日期时间,和时间戳类型11.3.2 The TIME Type 时间类型11.3.3 The YEAR Type 年类型11.3.4 YEAR(2) Limitations and Migrating to YEAR(4翻译 2018-01-07 14:39:52 · 1289 阅读 · 0 评论 -
mysql最新版explain详解来自官网直译(2)
explain输出信息详解id(JSON name:select_id): 这是select执行查询的顺序号。这个值也可以是null,当输出行引用的是其他行结果的合集时。在这种情况下,输出行的table这一列将会是一个类似于的值,表示这一行引用来自行id为M和N的结合。select_type(JSON name:none):查询的类型,下面表格中展示的类型都可以出现在这一列中。而对于JSO翻译 2017-11-03 11:36:20 · 303 阅读 · 0 评论 -
mysql最新版explain详解来自官网直译(1)
执行计划学习笔记8.8.1用查询计划优化查询mysql的执行计划提供了关于mysql执行语句的信息说明执行计划可以用于SELECT查询、DELETE删除、INSERT插入和UPDATE更新语句。当执行计划用于可使用执行计划的sql语句时,mysql会展示优化器关于执行sql语句的详细信息。也就是mysql会怎么样去执行这个sql语句,包括怎么做表连接和怎么排序。关于更具体的执行计划翻译 2017-11-02 19:54:44 · 516 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--子查询,派生表和试图引用
8.2.2 Optimizing Subqueries,Derived Tables,and View References 优化子查询,派生表和试图引用8.2.2.1 通过Semi-join转变来优化子查询,派生表和试图引用8.2.2.2 通过物化来优化子查询8.2.2.3 优化派生表和试图引用8.2.2.4 通过EXISTS策略来优化子查询mysql 查询优化有不同的策略可翻译 2017-11-30 16:00:20 · 396 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--通过物化来优化子查询
2.2 Optimizing Subqueries with Materialization 通过物化来优化子查询优化器使用物化能够更有效的来处理子查询。物化通过将子查询结果作为一个临时表来加快查询执行速度,正常来说是在内存中的。mysql第一次需要子查询结果是,它物化结果到一张临时表中。在之后的任何地方需要该结果集,mysql会再次引用临时表。优化器也许会使用一个哈希索引来使得查询更快速代价翻译 2017-11-30 17:59:15 · 2437 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--派生表和试图引用的优化
2.3 Optimizing Derived Tables and View References 派生表和试图引用的优化优化器能够对派生表(from条件中的子查询)使用两种策略:>合并派生表到外部查询块中>物化派生表到一个内部临时表中。优化器可以使用相同的策略来处理试图引用例子1:SELECT * FROM (SELECT * FROM t1) AS derived_t1翻译 2017-12-01 14:54:41 · 422 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--使用存在策略来优化子查询
2.4 Optimizing Subqueries with the EXISTS Strategy 使用存在策略来优化子查询。一些优化是适用于对比操作的使用在IN(或者=ANY)操作去测试子查询结果。这部分讨论这些优化,特别是考虑NULL值存在的挑战。后续讨论的部分建议你怎么样帮助优化器。考虑如下的子查询对比:outer_expr IN (SELECT inner_expr FROM翻译 2017-12-02 17:05:11 · 350 阅读 · 0 评论 -
mysql5.7官网直译优化和索引--mysql如何使用索引
8.3 Optimization and Indexes 优化和索引8.3.1 mysql怎么样使用索引8.3.2 主键索引优化8.3.3 外键索引优化8.3.4 列索引8.3.5 多列联合索引8.3.6 验证索引的使用8.3.7 innoDB和MyISAM索引策略集合8.3.8 B-TREE索引和哈希索引的对比8.3.9 索引延伸的使用8.3.10 优化器翻译 2017-12-02 21:11:47 · 304 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--引擎压入条件优化
Engine Condition Pushdown Optimization(引擎压入条件优化)这个优化用来提高直接对比一个无索引列和常量值比较的效率。在这种情况下,条件压入存储引擎去评估。这种优化只能用在NDB存储引擎上。对于NDB集群,这个优化能够排除那些不匹配的行数从集群中的数据节点到mysql服务器之间通过网络传输的数据,并且如果使用了优化比不使用能够提高查询5到10倍的效率。翻译 2017-11-12 10:34:20 · 400 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--索引条件压入优化
1.5index Condition Pushdown Optimization(索引条件压入优化)索引条件压入(ICP)是一个优化对于mysql从表中使用索引来检索行时。没有ICP,存储引擎遍历索引定位表中的行数据,然后返回数据到mysql服务器评估WHERE条件对于行数。如果ICP可以用,如果where条件的部分可以只使用索引列来做出评估,mysql服务压这部分满足where条件的数据入存翻译 2017-11-12 12:59:12 · 254 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--嵌套循环连接算法
1.6Nested-Loop Join Algorithms(嵌套循环连接算法)mysql通过使用一个嵌套循环算法或者是它的演变来执行表之间的连接。>嵌套循环连接算法一个简单的循环嵌套连接(NLJ)算法一次循环读取一行数据在第一张表中,通过每一行都嵌套循环处理与下一张表连接。这个过程被重复多次直到其他的多有表都被连接。假设一个涉及到三张表t1,t2,t3的连接被执行通过如下的连接类翻译 2017-11-12 13:49:08 · 592 阅读 · 0 评论 -
mysql最新版explain详解来自官网直译(3)
Explain的连接类型EXPLAIN输出的type列的值说明了表是怎么样连接的。在以JSON格式的输出中,该列的值为access_type属性的值。下面从最好到最差的连接类型来说说明:system:表中只有一行数据的表,这也是一种特别类型的常数连接类型const:在执行查询开始的时候,大多数都只有一行是匹配成功的。因为是单行匹配,所以需要查找该行对应列的值可以被优化器看做是常数。常数翻译 2017-11-04 21:08:13 · 391 阅读 · 0 评论 -
mysql最新版explain详解来自官网直译(4)
EXPLAIN输出的解释说明通过Explain执行计划输出结果中的值,你能够得到明确的提示,如何才能完成一个好的表连接。也能告诉你大概需要扫描多少行的数据Mysql才能执行完成查询。如果你用max_join_size系统值限定了查询,这行的输出通常被用来决定哪一个multiple-table在查询中被执行和那些被去除。具体请看5.1.1的服务的配置。接下来的例子说明了一个多表连接的查询是怎翻译 2017-11-05 17:35:41 · 205 阅读 · 0 评论 -
mysql最新版explain详解来自官网直译(5)
对于查询语句,Explain输出的额外扩展信息并不是Explain输出的一部分,而是需要通过SHOW Warning命令来查看,当执行EXPLAIN之后在执行即可。而输出的信息包含了优化器如何选择表和在查询中的列信息,在运用重写和优化规则之后的查询是怎么样的,还有一些可能的注意事项关于优化进程。额外的信息值有对查询语句有效,在执行Explain之后通过SHOW WARNING命令查看信息,而对翻译 2017-11-06 16:07:07 · 313 阅读 · 0 评论 -
mysql5.7官网直译数据类型--数字类型详解
11.2 Numeric Types 数字类型11.2.1 Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT 整数类型(精确值)11.2.2 Fixed-Point Types (Exact Value) - DECIMAL, NUMERIC 定点类型11.2.3 Float翻译 2018-01-06 16:50:01 · 1146 阅读 · 0 评论 -
mysql5.7官网直译数据类型--综述1
Chapter 11 Data Types 数据类型11.1 Data Type Overview 数据类型总览11.2 Numeric Types 数字类型11.3 Date and Time Types 日期和时间类型11.4 String Types 字符串类型11.5 Spatial Data Types 空间数据类型11.6 The JSON Data Ty翻译 2017-12-30 15:31:32 · 303 阅读 · 0 评论 -
mysql5.7官网直译数据类型--字符串类型1
11.4 String Types 字符串类型11.4.1 The CHAR and VARCHAR Types11.4.2 The BINARY and VARBINARY Types11.4.3 The BLOB and TEXT Types11.4.4 The ENUM Type11.4.5 The SET Type字符串类型是 CHAR, VARCHAR, BINA翻译 2018-01-14 19:13:27 · 360 阅读 · 0 评论 -
mysql5.7官网直译数据类型--日期和时间类型2
11.3.4 YEAR(2) Limitations and Migrating to YEAR(4) 两位数字年限制和转移到4位数字年因为两位数字的年将被移除而且在工作中用到比较少,所以不做翻译。---------------------------------------------11.3.5 Automatic Initialization and Updating for T翻译 2018-01-13 18:37:09 · 409 阅读 · 0 评论 -
mysql5.7官网直译数据类型--字符串类型2
11.4.4 The ENUM Type 枚举类型一个枚举类型是一个字符串对象,其值来自于表在创建时设定的列的值的集合中选择,其优点:》在合适的情况下,存储数据在一列中使用有限的可能值。你输入的字符串值自动转变为数字。具体请看11.8的数据类型类型存储要求中对枚举类型存储的要求。》在查询和输出过程中,数字被转变为正确的字符串返回。当然有些潜在的问题,需要考虑:》如果你使得枚举值翻译 2018-01-21 13:01:13 · 236 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--索引合并的优化
索引合并是使用多个范围扫描去检索行数据并最终合并他们的结果为一个结果集的方法。这种合并至能发生在单一表的索引扫描上;不能夸表合并扫描结果。这个合并会产生union并集,交集,或者是既有并集又有交集。例如如下的查询将会使用索引合并:SELECT * FROM tbl_name WHERE key1 = 10 OR key2 = 20;SELECT * FROM tbl_name翻译 2017-11-12 09:40:36 · 507 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--范围查询优化
范围查询的优化范围访问方法使用单一索引去检索表中的数据包含一个或者多个索引值的行记录。范围查询能够用于单一索引或者联合索引。下面的部分说明了优化器使用范围查询的条件。>范围访问方法对单一索引 对于单一索引,索引间隙值可以很容易的通过在where条件中正确的表现出来,表示为区域条件而不是间隙值 给一个单一索引值定义一个区域条件如下: 1)对于BTREE和HASH索引,当使用=,翻译 2017-11-09 17:32:03 · 1654 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--where条件查询优化
这部分讨论的优化是针对WHERE条件的。通过SELECT语句来举例,但是同样的优化也适用于DELETE和UPDATE中的WHERE语句。 注意:因为mysql优化器的工作一直在继续,所以不可能把mysql执行优化的全部信息都展示在这里。你也许会在牺牲可读性的前提下重写查询从而来提高算法操作速度。因为mysql会自动去做同样的优化操作,所以你应该避免这样做,从而保证你的查询更加可理解且具翻译 2017-11-07 18:53:40 · 743 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--select语句优化
8.2 sql语句优化大致内容如下:8.2.1:SELECT语句的优化8.2.2:优化子查询,派生表和试图引用8.2.3:优化INFORMATION_SCHEMA查询8.2.4:优化数据改变语句8.2.5:优化数据库权限8.2.6:其他优化建议数据库应用的核心逻辑是完成sql语句的执行,sql语句可以直接提交或者通过API后台提交。该部分指南帮助提高各种my翻译 2017-11-07 15:18:52 · 267 阅读 · 0 评论 -
mysql最新版explain详解来自官网直译(6)
为了得到执行计划的具体信息是以一个命名连接生成的,命令格式如下:EXPLAIN [options] FOR CONNECTION connection_id;EXPLAIN FOR CONNECTION返回的EXPLAIN信息就是当前被给出的连接所执行的查询的解析信息。因为数据的改变,也许会产生不同的结果当执行EXPLAIN去评估查询文本时。这种行为的不同能够对诊断更多瞬时行为问题有帮助。翻译 2017-11-06 17:08:15 · 390 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--嵌套连接的优化
Nested Join Optimization(嵌套连接的优化)允许嵌套连接的表达式语法。下面的描述引用在13.2.9.2的连接语法。table_factor的语法是对标准sql比较的扩展。后者只接受table_reference,而不是一个括号内的list集合。如果我们考虑每一个在table_reference集合中的逗号在内连接中都是等价的,那么这可以被看做是一个保守的扩展。例如翻译 2017-11-14 16:05:55 · 242 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--左右连接的优化
1.8Left Join and Right Join Optimization(左连接和右连接的优化):mysql执行一个A left join B的连接条件如下:>表B是一个依赖于A和A依赖的所有其他表共同决定的集合。>表A是一个依赖于用于left join条件的除B表意外的所有表的一个集合。>LEFT JOIN条件被用来决定怎么样检索B表中的行。(换句话说,任何在where中翻译 2017-11-14 18:37:16 · 547 阅读 · 0 评论 -
mysql5.7官网直译SQL语句优化--外部链接简单化
1.9 Outer Join Simplifiation.外部连接简单化查询中from条件中表的表达式可以有多种方式简单化。在分析阶段,包含右外连接操作的查询可以被转换为值包含左连接操作的查询。在一般情况下,转变回产生在如下的右连接中:(T1, ...) RIGHT JOIN (T2, ...) ON P(T1, ..., T2, ...)变成等价的左连接:(T2, ...) LEFT翻译 2017-11-15 14:12:29 · 262 阅读 · 0 评论 -
mysql5.7官网直译优化和索引--使用生成列的索引
8.3.10 Optimizer Use of Generated Column Indexes 优化使用生成的列的索引mysql支持索引被产生的列。例如:CREATE TABLE t1 (f1 INT, gc INT AS (f1 + 1) STORED, INDEX (gc));被产生的列gc,是表达式f1+1得到的。列被索引并且优化器能够使用该索引在执行计划的构造过程中。在下面的翻译 2017-12-08 15:14:20 · 241 阅读 · 0 评论 -
mysql5.7官网直译数据结构优化--数据大小优化
8.4.1 Optimizing Data Size 优化数据大小设计你的表尽量减少他们在磁盘上的占用空间。这能够使得大幅提高性能通过减少写入数据和读取数据在磁盘上。更小的表自然需要更小的内存,虽然他们的内容在查询的时候需要被激活处理。任何空间的减少对于表数据自然也会减少索引的大小,从而也能提高查询的速度。mysql支持许多不同的存储引擎(表类型)和行格式。对于每张表,你能够决定怎么样存储翻译 2017-12-09 17:17:24 · 234 阅读 · 0 评论 -
mysql5.7官网直译数据类型优化--数字,字符串,BLOB等
8.4.2 Optimizing MySQL Data Types 优化mysql数据类型8.4.2.1 Optimizing for Numeric Data 数字类型的优化>对于唯一IDs或者其他可以代表字符串或者数字的值,更希望是数字而不是字符串。因为大数字能够被更少的字节数存储比字符串,它更快而且占用更少的内存去转变和对比他们。>如果你使用数字类型的数据,在很多情况下从数据库中翻译 2017-12-09 22:10:55 · 665 阅读 · 0 评论 -
mysql5.7官网直译InnoDB表优化--行存储布局,事物管理
8.5 Optimizing for InnoDB Tables 关于InnoDB表的优化8.5.1 Optimizing Storage Layout for InnoDB Tables 关于InnoDB表存储布局的优化8.5.2 Optimizing InnoDB Transaction Management InnoDB 事物管理的优化8.5.3 Optimizing InnoD翻译 2017-12-11 15:43:29 · 237 阅读 · 0 评论 -
mysql5.7官网直译InnoDB表优化--只读事物优化,Redo日志优化,数据加载优化,innoDB查询优化,DDL操作优化
8.5.3 Optimizing InnoDB Read-Only Transactions 只读事物的优化InnoDB能够避免对一个只读事物设置事物ID(TRX_ID属性)的相关开销。一个事物ID只有在写事物或者是锁读例如SELECT .... FOR UPDATE时才需要。排除不需要的事物id减少了内部数据结构的大小,该数据结构在每次查询中都用到或者是在数据改变语句中构造一个读试图。I翻译 2017-12-12 12:41:41 · 460 阅读 · 0 评论 -
mysql5.7官网直译InnoDB表优化--磁盘I/O的优化
8.5.8 Optimizing InnoDB Disk I/O InnoDB磁盘I/O的优化如果你追求最好的数据库设计和最优的sql调优技术,但是你的数据库依然因为大量的磁盘I/O而运行很慢,那应该考虑优化这些I/O。如果Unix的top工具或者是Windows任务管理展示CPU的使用百分比低于70%,你的工作负荷应该是和磁盘绑定的。>增加缓冲池大小当表数据被缓存到InnoDB缓存池翻译 2017-12-14 14:31:15 · 729 阅读 · 0 评论 -
mysql5.7官网直译InnoDB表优化--优化InnoDB的配置变量
8.5.9 Optimizing InnoDB Configuration Variables 优化InnoDB的配置变量不同的配置对轻量级可预测负载服务,或者是始终满负荷服务器或者是高活动率的服务器有不同的表现。因为InnoDB存储引擎会自动完成许多它自己的优化,许多性能调优任务涉及到监控从而保证数据库的性能很好,并且在性能下降时,改变配置选项。请看14.16的InnoDB和MySQL性翻译 2017-12-16 15:18:46 · 760 阅读 · 0 评论 -
mysql5.7官网直译锁操作优化--表锁的使用建议
8.11.2 Table Locking Issues 表锁的问题InnoDB表使用行锁所以可以多个session和应用读和写相同的表在同一时刻,而不需要彼此等待或者产生不一致的结果。对于这样的存储引擎,避免使用LOCK TABLES语句,因为它不会提供任何额外的保护,但是反而会减少并发。自动行锁使得这些表适合你繁忙的数据库对你重要的数据,而且也简化了应用的逻辑因为你不需要锁和减锁表。通常In翻译 2017-12-17 16:05:06 · 770 阅读 · 0 评论 -
mysql5.7官网直译锁操作优化--内部锁的方法介绍
8.11 Optimizing Locking Operations 锁操作的优化8.11.1 Internal Locking Methods 内部锁定的方法8.11.2 Table Locking Issues 表锁的问题8.11.3 Concurrent Inserts 并发插入8.11.4 Metadata Locking 元数据锁8.11.5 External翻译 2017-12-17 13:08:47 · 341 阅读 · 0 评论 -
mysql5.7官网直译数据类型--综述2
11.1.2 Date and Time Type Overview时间数据类型的摘要如下,关于时间类型的属性和存储要求的额外信息,请看11.3的日期和时间类型,11.8的数据类型存储要求。对于操作时间函数的描述请看12.7的日期和时间函数。对于DATE和DATETIME范围描述。"支持"意味着虽然更早的值也有效,但是不做保证。MYSQL允许小数秒对于TIME,DATETIME和TIM翻译 2017-12-31 17:15:42 · 366 阅读 · 0 评论 -
mysql5.7官网直译优化和索引--使用索引扩展
8.3.9 Use of index Extensions 使用索引扩展。innoDB自动扩展每一个二级索引通过添加主键列到索引中。考虑这样的表定义:CREATE TABLE t1 ( i1 INT NOT NULL DEFAULT 0, i2 INT NOT NULL DEFAULT 0, d DATE DEFAULT NULL, PRIMARY KEY (i1,翻译 2017-12-08 14:34:36 · 389 阅读 · 0 评论 -
mysql5.7官网直译优化和索引--B树索引和哈希索引的对比
8.3.8 Comparison of B-Tree and Hash Indexes B-Tree索引和哈希索引的对比。理解B树索引和哈希索引的数据结构能够帮助预测不同的存储引擎上查询有怎么样的不同,使用这些数据结构在他们的索引上,特别是内存存储引擎让你选择是用B树索引还是哈希索引。B树索引的特点一个B树索引能够用于列比较在表达式使用 =, >, >=, SELECT * FRO翻译 2017-12-07 15:07:32 · 323 阅读 · 0 评论 -
mysql5.7官网直译优化和索引--索引统计的收集
8.3.7 InnoDB and MyISAM Index Statistics Collection 索引统计收集存储引擎收集统计关于使用了优化策略的表。表统计是基于值分组的,其中一个组的值都是基于相同的key前缀值。而对于优化器的作用,一个重要的统计是平均组值的大小。mysql使用组大小的平均值在如下地方:>为了评估每一个ref方法必须要读取多少行数据>为了评估一个部分的连接将翻译 2017-12-05 14:57:21 · 217 阅读 · 0 评论