深入理解MySQL索引底层数据结构
在日常工作中,我们会遇见一些慢SQL,在分析这些慢SQL时,我们通常会看下SQL的执行计划,验证SQL执行过程中有没有走索引。通常我们会调整一些查询条件,增加必要的索引,SQL执行效率就会提升几个数量级。我们有没有思考过,为什么加了索引就会能提高SQL的查询效率,为什么有时候加了索引SQL执行反而会没有变化,本文就从MySQL索引的底层数据结构和算法来进行详细分析。
林末 林末
4年前
MySQL报错SELECT list is not in GROUP BY clause and contains nonaggre的问题
报错现象执行SQL报错如下:bashSELECTstudent.s_no,student.s_name,SUM(result.mark)FROMstudent,resultWHEREstudent.s_noresult.s_noGROUPBYstudent.s_no1055Expression2ofSELECTlis
Wesley13 Wesley13
3年前
MySQL运维之我踩过的那些坑
!(https://oscimg.oschina.net/oscnet/442ddbbc67354890a6db24a96a442395.gif)!(https://oscimg.oschina.net/oscnet/d23b7a5b0ac6454ab7a4831e6995f774.jpg"知数堂新logo.jpg")
Wesley13 Wesley13
3年前
Mysql数据库 主从复制的作用原理
主从的作用1.实时灾备:一台主数据库宕机了,启用从数据库,用于故障切换2.读写分离:主服务器只用于写操作,从服务器只用于读取,支持了更大的并发3.备份:可以解决数据丢失的问题,避免影响业务主从原理1、主库接收到更新命令,执行更新操作,生成binlog2、从库sal
Wesley13 Wesley13
3年前
Mysql 主外键与索引之间的区别和联系
系数据库依赖于主键,它是数据库物理模式的基石。主键在物理层面上只有两个用途: 惟一地标识一行。 作为一个可以被外键有效引用的对象。 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。下面是主键和索引的一些区别与联系。 1\.主键一定是唯一性索引,唯一性索
Wesley13 Wesley13
3年前
MySQL数据库开发的三十六条军规
一.核心军规尽量不在数据库做运算,cpu计算的事务必移至业务层;  控制表、行、列数量(【控制单张表的数据量1年/500W条,超出可做分表】,【单库表数据量不超过300张】、【单张表的字段个数不超过50个,多了拆表】)三大范式没有绝对的要使用,效率优先时可适当牺牲范式 https://www.cnblogs.com/wdw31
Stella981 Stella981
3年前
LeetCode 1225. Report Contiguous Dates (MYSQL + hive UDTF版本)
一、原题描述Table: Failed|ColumnName|Type||fail_date|date|
Wesley13 Wesley13
3年前
mysql可扩展第二部分
  数据分片主要是将数据按照一定的规则分为几个完全不同的数据集合的方式成为数据分片。数据的切分可以是数据库内的,将数据库中的一张表切分为几个不同的数据库表。也可以是数据库级别的,将数据库中的表划分为多个表,这些表存储在不同的数据库服务器上。该部分主要用来介绍数据库级的数据分片。切分规则将具有相关的数据保存在同一个分片上可以提高数据查询效率。数据库分片的路由规
Wesley13 Wesley13
3年前
mysql修改root密码和普通用户密码
1、修改root用户密码1.1mysqladmin命令(回目录)    格式如下(其中,USER为用户名,PASSWORD为新密码):    mysqladminuUSERppasswordPASSWORD    该命令之后会提示输入原密码,输入正确后即可修改。    例如,设置ro
Wesley13 Wesley13
3年前
MySQL数据库性能优化六大技巧
数据库表表面上存在索引和防错机制,然而一个简单的查询就会耗费很长时间。Web应用程序或许在开发环境中运行良好,但在产品环境中表现同样糟糕。如果你是个数据库管理员,你很有可能已经在某个阶段遇到上述情况。因此,本文将介绍对MySQL进行性能优化的技巧和窍门。1.存储引擎的选择如果数据表需要事务处理,应该考虑使用InnoDB,因为它完全符合ACI