![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL数据库
文章平均质量分 73
dongcheng_2015
这个作者很懒,什么都没留下…
展开
-
MySQL的三个流行分支介绍
转载:超越MySQL:三个流行MySQL分支的对比摘要尽管MySQL是最受欢迎的程序之一,但是许多开发人员认为有必要将其拆分成其他项目,并且每个分支项目都有自己的专长。该需求以及Oracle对核心产品增长缓慢的担忧,导致出现了许多开发人员感兴趣的子项目和分支。导读:本文将讨论受人们关注的三个流行MySQL分支:Drizzle、MariaDB和Percona Server(包括XtraDB引擎)。文中简要介绍每个分支出现的原因及其目标,以及是否可在您自己的生产环境中使用它们。...转载 2021-08-23 14:11:39 · 1269 阅读 · 0 评论 -
分页查询的优化
我们有分页查询订单详细信息的需求,订单表目前有300多万的数据,而且order表在orderNo列上有索引,传统的写法可能使用limit offset, pageSize的写法来实现,但是有一个问题,在offset非常大的时候,查询会很慢,因为会使Mysql扫描大量的无用行,然后再扔掉,例如下面这样的语句。select orderNo, state, payType, ctime from `order` order by orderNo limit 2000000, 20;结果用了13秒才原创 2021-05-15 17:44:08 · 169 阅读 · 0 评论 -
MySQL中查询获取每个班级成绩前三名的学生信息
CREATE TABLE t_testscore( pk_id INT PRIMARY KEY, c_name VARCHAR(50) , c_score INT, c_class INT )DEFAULT CHARSET=utf8;INSERT INTO t_testscore VALUES (1, '张三6', 66, 1),(2, '张三5', 65, 1),(3, '张三4', 64, 1), (4, '张三3', 63, 1),(5, '张三2', 62, 1);.原创 2021-05-15 13:11:21 · 6938 阅读 · 1 评论 -
MYSQL的B+Tree索引树高度如何计算
前一段被问到一个平时没有关注到有关于MYSQL索引相关的问题点,被问到一个表有3000万记录,假如有一列占8位字节的字段,根据这一列建索引的话索引树的高度是多少?这一问当时就被问蒙了,平时这也只关注MySQL索引一般都是都是用B+Tree来存储维护索引的,还有一些复合索引的最左匹配原则等等,还真没有实际关注过始即然用到索引能提升查询的效率,那么这个索引树高是多少,给定表和索引字段后怎么计算出索引树的高度?下面将用举例的形式来说明如何计算索引树的高度。在举例之前,先给出一个千万级记录表的索引的高度大概转载 2021-04-09 01:00:34 · 436 阅读 · 0 评论 -
InnoDB中的页合并与分裂
文件表(File-Table)结构假设你已经装好了MySQL最新的5.7版本,并且你创建了一个windmills库(schema)和wmills表。在文件目录(通常是/var/lib/mysql/)你会看到以下内容:data/ windmills/ wmills.ibd wmills.frm这是因为从MySQL 5.6版本开始innodb_file_per_table参数默认设置为1。该配置下你的每一个表都会单独作为一个文件存储(如果有分区也可能有多个文件)。目转载 2021-04-09 00:44:51 · 166 阅读 · 0 评论 -
MySQL的异步复制、全同步复制与半同步复制
一、MYSQL复制架构衍生史在2000年,MySQL 3.23.15版本引入了Replication。Replication作为一种准实时同步方式,得到广泛应用。这个时候的Replicaton的实现涉及到两个线程,一个在Master,一个在Slave。Slave的I/O和SQL功能是作为一个线程,从Master获取到event后直接apply,没有relay log。这种方式使得读取event的速度会被Slave replay速度拖慢,当主备存在较大延迟时候,会导致大量binary log没有备份到Sl转载 2021-04-09 00:25:40 · 421 阅读 · 0 评论 -
MySQL中的联合索引
一、联合索引基础知识 讲联合索引,一定要扯最左匹配!放心,我不扯有的没的,几句话懂个大概就行! 所谓最左原则指的就是如果你的 SQL 语句中用到了联合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个联合索引去进行匹配,值得注意的是,当遇到范围查询(>、<、between、like)就会停止匹配。假设,我们对(a,b)字段建立一个索引,也就是说,你where后条件为a = 1 and b = 2 是可以匹配索引的。但是要注意的是~你执行 b= 2 and a =1也是能匹配到转载 2020-05-23 19:04:00 · 1077 阅读 · 0 评论 -
MySQL中如何使用索引?
一、索引的存储分类索引都是在存储引擎层实现的,而不是在服务层实现的,所以每种存储引擎的索引都不一定完全相同,也并非所有的存储引擎都支持所有的索引类型。MySQL中包含如下四种索引:B-Tree索引:最常见的索引类型,大部分存储引擎都支持B树索引。HASH索引:只有Memory引擎支持,使用场景简单。R-Tree索引(空间索引):MyISAM的一种特殊类型索引,主要用于地理空间类型。Full-Text(全文索引):MyISAM的一种特殊类型索引,主要用于全文索引。MyISAM支持前缀索引,但是前缀原创 2020-05-23 17:38:56 · 559 阅读 · 0 评论 -
MySQL数据库——索引的设计与使用
一、索引的创建于删除索引是数据库中用来提高性能最常用的工具,本文将简单介绍索引的设计原则。所有MySQL列类型都可以被索引,对相关列使用索引是提高select查询语句的性能的最佳途径。不同的存储引擎可定义不同的最大索引数量和最大索引长度,每种存储引擎对每个表至少支持16个索引,总索引长度至少为256字节。MyISAM和InnoDB存储引擎的表默认都是创建BTREE索引,而MEMEORY存储引擎使用HASH索引,但也支持BTREE索引。MySQL目前还不支持函数索引,但是支持前缀索引(即对索引的前N个字原创 2020-05-23 11:34:02 · 374 阅读 · 0 评论