
MySQL
椰子啊
所有命运馈赠的礼物,早已在暗中标好了价格
展开
-
高性能MySQL学习三(性能优化、pt-query-digest的使用、SHOW PROFILE分析)
1、性能优化简介首先,我们将性能定义为完成某件任务所需要的时间,简言之,性能即响应时间。所谓性能优化就是在一定的工作负载下尽可能地降低响应时间。(吞吐量是单位时间内的查询数量,所以性能优化也可以说成提升吞吐量)接着,要知道的一点是,有效测量才能有效优化。通过性能剖析进行有效地性能优化:2、通过pt-query-digest进行性能剖析(1)pt-query-digest安装官网安...原创 2019-08-16 10:03:06 · 324 阅读 · 0 评论 -
单列索引、多列索引及如何选择合适的索引列顺序
1、单列索引最常见的索引类型涉及单个列,在数据结构中存储该列的值的副本,允许快速查找具有相应列值的行。 B树数据结构允许索引在WHERE子句中快速查找特定值,一组值或一系列值,对应于运算符如=,>,≤,BETWEEN,IN等。mysql> create table people( -> last_name varchar(50) not null, ->...原创 2019-08-28 14:43:45 · 2185 阅读 · 0 评论 -
MySQL前缀索引和索引选择性
1、我们怎么合理使用前缀索引有时候需要索引很长的字符列,这会让索引变得大且慢。通常可以索引开始的部分字符,这样可以大大节约索引空间,从而提高索引效率。但这种做法会带来新的问题,降低索引的选择性。索引的选择性是指不重复的索引值(也称为基数)和数据表的记录总数(#T)的比值,范围从1/#T到1之间。索引的选择性越高则查询效率越高,因为选择性高的索引可以让MySQL在查找时过滤掉更多的行。唯一索引...原创 2019-08-28 11:36:37 · 325 阅读 · 0 评论 -
MySQL全文索引之布尔全文索引、查询扩展全文索引
1、布尔全文索引MySQL可以使用IN BOOLEAN MODE修饰符执行布尔全文搜索 。使用此修饰符,某些字符在搜索字符串中的单词的开头或结尾处具有特殊含义。在以下查询中, +和-运算符分别表示必须存在或不存在单词才能进行匹配。因此,下面这个例子表示,检索包含单词 ''MySQL"但不包含"database"的所有行mysql> select * from articles;+---...原创 2019-08-27 16:16:08 · 1883 阅读 · 0 评论 -
高性能MySQL学习五(B+树索引、哈希索引、全文索引)
1、为什么使用索引索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后读取整个表以查找相关行。表越大,成本越高。但如果表中有相关列的索引,MySQL就可以快速确定要在数据文件中间寻找的位置,而无需查看所有数据。这比按顺序读取每一行要快得多。大多数MySQL索引(PRIMARY KEY, UNIQUE,INDEX和 FULLTEXT)存储在B树。例外情况是空间数据...原创 2019-08-23 14:55:42 · 567 阅读 · 0 评论 -
高性能MySQL学习四(整数、浮点、字符串、ENUM枚举、日期时间、位等数据类型)
1、整数类型这些整数类型的存储值的范围可以从-2(N-1) 到2(N-1) ,其中N是存储空间的位数。整数类型可选的UNSIGNED属性表示不允许负值,着大致可以使得正数的上限提高一倍。有符号和无符号使用相同的存储空间,具有相同的性能。mysql> create table t1(ida int,idb int(5));Query OK, 0 rows affected, 1 wa...原创 2019-08-21 15:27:04 · 667 阅读 · 0 评论 -
MySQL全文索引之自然语言全文索引、更改默认停用词
mysql> CREATE TABLE articles ( -> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, -> title VARCHAR(200), -> body TEXT, -> FULLTEXT (title,body) -> ) ENGINE=I...原创 2019-08-26 15:25:12 · 1081 阅读 · 0 评论 -
高性能MySQL学习一(逻辑架构、并发控制、事务、四种隔离级别、多版本并发控制MVCC)
1、MySQL三层逻辑架构第一层负责连接管理、授权认证、安全性等。每个客户端的连接都对应着服务器上的一个线程。服务器上维护了一个线程池,避免为每个连接都创建销毁一个线程。当客户端连接到MySQL服务器时,服务器对其进行认证。可以通过用户名和密码的方式进行认证,也可以通过SSL证书进行认证。登录认证通过后,服务器还会验证该客户端是否有执行某个查询的权限。第二层负责解析查询(编译SQL...原创 2019-08-02 14:18:52 · 238 阅读 · 0 评论 -
MySQL基准测试、sysbench使用
基准测试,简单来说,就是针对系统设计的一种压力测试,通常目标是为了掌握系统的行为。1、基准测试策略(1)集成式基准测试:针对整个系统(2)单组件式基准测试:针对数据库2、测试指标(1)吞吐量:单位时间内的事务处理数(2)响应时间或者延迟:用于测试任务所需的整体时间如,要测量特定MySQL表达式或函数的速度,可以调用BENCHMARK()函数mysql> select be...原创 2019-08-05 16:14:33 · 257 阅读 · 0 评论 -
MySQL四种隔离级别及对应示例详解
前面我们了解了MySQL事务和四种隔离级别,以及各个级别会导致的一些问题,不了解的可以戳这里:MySQL事务、隔离级别,今天我们通过例子来直观的感受一下.首先声明一下,这里安装的是MySQL8,那么我们先来查看一下MySQL的默认隔离级别mysql> select @@global.transaction_isolation; //全局隔离级别mysql> select @@t...原创 2019-08-13 16:44:51 · 294 阅读 · 0 评论 -
高性能MySQL学习二(常用存储引擎功能摘要、InnoDB内存结构)
高性能MySQL学习一存储引擎是MySQL组件,用于处理不同表类型的SQL操作,SHOW ENGINES语句可以查看服务器支持哪些存储引擎。mysql> SHOW ENGINES\G*************************** 1. row *************************** Engine: MRG_MYISAM Support: Y...原创 2019-08-14 10:30:52 · 170 阅读 · 0 评论 -
MySQL的InnoDB表、自增字段(AUTO_INCREMENT)处理
1、创建InnoDB表mysql> SELECT @@default_storage_engine; //查看默认存储引擎+--------------------------+| @@default_storage_engine |+--------------------------+| InnoDB |+----------------...原创 2019-08-14 15:09:47 · 918 阅读 · 0 评论