mysql
文章平均质量分 82
harderc111
精通是相对的,无知是绝对的,道阻且长
展开
-
MySQL丢数据及主从数据不一致的场景
随着对MySQL的学习,发现了MySQL的很多问题,最重要的就是丢数据的问题。对于丢数据问题,我们应该了解丢数据的场景,这样在以后的学习中多考虑如何去避免及解决这些问题。1.MySQL数据库层丢数据场景 本节我们主要介绍一下在存储引擎层上是如何会丢数据的。1.1.InnoDB丢数据 InnoDB支持事务,同Oracle类似,事务提交需要写redo、undo。采用日志先行的策略,将数据的变更在内存转载 2017-10-17 22:50:32 · 4415 阅读 · 0 评论 -
【转】数据库索引,到底是什么做的?
原文地址:https://mp.weixin.qq.com/s/YMbRJwyjutGMD1KpI_fS0A近期写数据库,不少朋友留言问MySQL索引底层的实现,今天简单聊一聊,少讲“是怎么样”,更多说说“为什么设计成这样”。问题1. 数据库为什么要设计索引? 图书馆存了1000W本图书,要从中找到《架构师之路》,一本本查,要查到什么时候去? 于是,图书管理员设计了一套规则: (...转载 2018-08-31 10:12:37 · 143 阅读 · 0 评论 -
MySQL学习之——锁(行锁、表锁、页锁、乐观锁、悲观锁等)
地址:原文传送门 锁,在现实生活中是为我们想要隐藏于外界所使用的一种工具。在计算机中,是协调多个进程或线程并发访问某一资源的一种机制。在数据库当中,除了传统的计算资源(CPU、RAM、I/O等等)的争用之外,数据也是一种供许多用户共享访问的资源。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素。从这一角度来说,锁对于数据库而...原创 2018-09-19 20:07:24 · 496 阅读 · 0 评论 -
【转】MySQL—1、数据库索引的实现原理及查询优化
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。使用索引的目的在于提高查询效率,这篇文章梳理一下索引的实现原理和应用。不同的存储引擎索引实现的数据结构不同MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如B-Tree索引,哈希索引,全文索引等,主要存储引擎有MyISAM、InnoDB、MEMO...转载 2018-12-27 21:37:25 · 159 阅读 · 0 评论 -
【转】Mysql学习-索引总结(B-tree和hash、主键索引、唯一索引、普通索引、全文索引和组合索引)
常用的两种索引结构:B-tree和HASHB-tree B-tree索引能够加快访问数据的速度,因为存储引擎不再需要经行全表扫描来获取需要的数据,取而代之的是从根节点开始搜索。根节点的槽中存放了指向子节点的指针,存储引擎根据这些指针向下查找。通常比较节点页的值和要查找的值可以找到合适的指针进入下层子节点。B-tree通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同。 ...转载 2018-12-29 01:13:10 · 1700 阅读 · 0 评论 -
【转】MySQL InnoDB引擎B+树索引简单整理说明
前言本文出处:http://www.cnblogs.com/wy123/p/7211742.htmlMySQL中的InnoDB引擎表索引类型有一下几种(以下所说的索引,没有特殊说明,均指InnoDB引擎表索引。) 0 = Secondary Index,二级索引, 1 = Clustered Index,聚集索引 2 = Unique Index,唯一索引 3 = Primar...转载 2018-12-29 22:48:51 · 233 阅读 · 0 评论 -
【转】INSERT...ONDUPLICATEKEYUPDATE产生deathlock死锁原理讲解及解决办法
地址:https://www.2cto.com/database/201711/695662.html前言 我们在实际业务场景中,经常会有一个这样的需求,插入某条记录,如果已经存在了则更新它如果更新日期或者某些列上的累加操作等,我们肯定会想到使用INSERT … ON DUPLICATE KEY UPDATE语句,一条语句就搞定了查询是否存在和插入或者更新这几个步骤,但是使用这条语句在msy...转载 2019-01-01 23:27:45 · 2232 阅读 · 0 评论 -
【转】MySQL 表锁和行锁机制
行锁变表锁,是福还是坑?如果你不清楚MySQL加锁的原理,你会被它整的很惨!不知坑在何方?没事,我来给你们标记几个坑。遇到了可别乱踩。通过本章内容,带你学习MySQL的行锁,表锁,两种锁的优缺点,行锁变表锁的原因,以及开发中需要注意的事项。还在等啥?经验等你来拿! MySQL的存储引擎是从MyISAM到InnoDB,锁从表锁到行锁。后者的出现从某种程度上是弥补前者的不足。比如:MyISAM不...转载 2019-01-02 00:43:05 · 321 阅读 · 0 评论 -
【转】mysql索引优化———最左原则
推荐阅读:https://blog.csdn.net/zly9923218/article/details/51007554http://www.cnblogs.com/itdragon/p/8146439.html解释一下最左前缀原则:2.当b+树的数据项是复合的数据结构,比如(name,age,sex)的时候,b+数是按照从左到右的顺序来建立搜索树的,比如当(张三,20,F)这样的数据...转载 2019-01-02 17:30:00 · 270 阅读 · 0 评论 -
【转】mysql的分区和分表
地址:https://www.cnblogs.com/phpshen/p/6198375.html分区分区就是把一个数据表的文件和索引分散存储在不同的物理文件中。mysql支持的分区类型包括Range、List、Hash、Key,其中Range比较常用:RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。LIST分区:类似于按RANGE分区,区别在于LIST分区是基于...转载 2019-01-02 17:56:47 · 179 阅读 · 0 评论 -
在一个千万级的数据库查寻中,如何提高查询效率?
一、数据库设计方面1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引;2、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select ...转载 2018-05-19 00:50:40 · 2635 阅读 · 0 评论 -
MySQL数据库渗透及漏洞利用总结
地址:https://mp.weixin.qq.com/s?__biz=MzIyNjE4NDcyMA==&mid=2247484839&idx=1&sn=16720fb8e035c8bbe612d738839262c5&chksm=e8751ed8df0297ce54ef5acabd5a42f66f81f66b56b168ba80a3af5d55877d546aee...转载 2018-05-09 15:40:45 · 22169 阅读 · 0 评论 -
myql相关
建表语句 主要学习、mysql建表的语法Create Table If Not Exists转载 2017-10-27 11:48:45 · 231 阅读 · 0 评论 -
查看mysql库大小,表大小,索引大小
说明:通过MySQL的 information_schema 数据库,可查询数据库中每个表占用的空间、表记录的行数;该库中有一个 TABLES 表,这个表主要字段分别是:TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录数DATA_LENGTH:数据大小INDEX_LENGTH:索引大小其他转载 2017-11-08 15:26:30 · 308 阅读 · 0 评论 -
MySQL中的两种临时表
转自:http://mysql.taobao.org/monthly/2016/06/07/外部临时表通过CREATE TEMPORARY TABLE 创建的临时表,这种临时表称为外部临时表。这种临时表只对当前用户可见,当前会话结束的时候,该临时表会自动关闭。这种临时表的命名与非临时表可以同名(同名后非临时表将对当前会话不可见,直到临时表被删除)。内部临时表内部转载 2017-12-23 16:06:09 · 559 阅读 · 0 评论 -
MySQL5.6中limit的工作机制和order by limit优化原理
MySQL5.6中Limit的工作机制如果你仅需要在一个结果集中返回特定的几行,通常是使用limit,而不是取回整个结果集再舍去不需要的数据,MySQL通常按照如下的方式优化一个包含limit row_count或HAVING的语句:◎只有limit如果你只通过limit返回少量的行,那么正常情况下mysql会使用全盘扫描,有些场合会使用索引,以下是使用了覆盖索引的情况:转载 2017-12-23 16:07:35 · 11210 阅读 · 2 评论 -
mysql_相关收集
统计指定库表大小select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from information_schema.tables where table_schema='db_name' and table_name='table_name';查看mysql零时表配置show variables ...转载 2017-12-23 14:33:51 · 241 阅读 · 0 评论 -
MySQL执行外部sql脚本文件的命令
sql脚本是包含一到多个sql命令的sql语句,我们可以将这些sql脚本放在一个文本文件中(我们称之为“sql脚本文件”),然后通过相关的命令执行这个sql脚本文件。基本步骤如下:1、创建包含sql命令的sql脚本文件文件中包含一些列的sql语句,每条语句最后以;结尾,文件内容示例如下:--创建表,使用“--”进行注释create table 表名称( Gu...转载 2018-02-27 12:02:33 · 734 阅读 · 0 评论 -
深入mysql "ON DUPLICATE KEY UPDATE" 语法的分析
mysql "ON DUPLICATE KEY UPDATE" 语法如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。 例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的...转载 2018-02-27 17:51:52 · 5496 阅读 · 0 评论 -
Orphan Temporary Tables(alter_table异常失败)
Orphan Temporary TablesIf MySQL exits in the middle of a table-copying ALTER TABLE operation (ALGORITHM=COPY), you may be left with an orphan temporary table that takes up space on your system. This s...转载 2018-02-27 19:18:21 · 389 阅读 · 0 评论 -
Mysql数据库主要系统表说明
1. 获取所有表结构(TABLES)SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA='数据库名';TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。各字段说明如下:字段含义转载 2018-03-08 10:41:48 · 940 阅读 · 0 评论 -
【转】Mysql笔记-事务
原文地址:https://blog.csdn.net/V_victor/article/details/52266815事务 事务(Transaction)会把数据库从一种一致状态转换为另一种一致状态。在数据库提交工作时,要么所有修改都已经保存了,要么修改都不保存。事务是访问并更新数据库中各种数据项的一个程序执行单元。在执行中要么都做修改,要么都不做修改。InnoDB存储引擎中的事务完全...转载 2019-01-02 19:39:06 · 159 阅读 · 0 评论