
mysql
文章平均质量分 78
风情客家__
简述需要300字以内_(¦3」∠)_
展开
-
CentOS7 yum方式安装MySQL5.7
参考文章:CentOS7 yum方式安装MySQL5.7转载 2023-11-14 10:31:44 · 194 阅读 · 0 评论 -
mysql TIMESTAMPDIFF 函数用法
注意 ,当传入混合参数时end-begin 不足 1个unit的时候 为0.unit参数是确定(end-begin)时间差的单位,单位值如下表。类型,并且可允许参数为混合类型。-- begin和end可以为。转载 2023-06-13 23:41:02 · 261 阅读 · 0 评论 -
MySQL中Truncate用法详解
当我们想要清空某张表时,往往会使用truncate语句。大多时候我们只关心能否满足需求,而不去想这类语句的使用场景及注意事项。本篇文章主要介绍truncate语句的使用方法及注意事项。原创 2023-05-09 16:59:31 · 3727 阅读 · 0 评论 -
mysql索引失效的常见9种原因详解
MySQL中提高性能的一个最有效的方式是对数据表设计合理的索引。索引提供了高效访问数据的方法,并且加快查询的速度, 因此索引对查询的速度有着至关重要的影响。使用索引可以快速地定位表中的某条记录,从而提高数据库查询的速度,提高数据库的性能。如果查询时没有使用索引,查询语句就会扫描表中的所有记录。在数据量大的情况下,这样查询的速度会很慢。大多数情况下都(默认)采用B+ 树来构建索引。只是空间列类型的索引使R- 树,并且MEMORY 表还支持hash索引。其实,用不用索引最终都是优化器说了算。转载 2023-04-11 10:51:44 · 2947 阅读 · 0 评论 -
MySQL 索引使用规范
例如手机号、用户 ID、班级等,但是比如一张全校学生表,每条记录是一名学生,where 语句是查询所有’某学校‘的学生,那么其实也不会提高性能。无论是主键还是索引列都尽量选择小的,如果很大则会占据很大的索引空间。重复索引:在一个字段上添加了普通索引、唯一索引、主键等多个索引。重点关注 where 语句后边的情况。联合索引:(字段 1 字段 2)单列索引:(字段 1)转载 2023-01-20 10:13:33 · 281 阅读 · 0 评论 -
数据库设计规范(二)
例如能使用tinyint就不要使用smallint,能使用smallint就不要使用int,能使用int就不要使用varchar、char,能用varchar(16)就不要使用varchar(256),只有配置表(总体尺寸小)才不需要遵守;1、结构更新sql、数据sql、函数sql、清库sql分开提交,分别为vr_mmo_update.sql、vr_mmo_data.sql、vr_mmo_clean.sql。vr_mmo_data.sql库的初始数据,一般只包含配置数据,只维护当前的版本。......转载 2022-07-26 15:35:28 · 173 阅读 · 0 评论 -
数据库设计规范(一)--Mysql阿里
参考文章。转载 2022-07-26 15:01:07 · 2779 阅读 · 0 评论 -
MySQL面试题
索引相关关于MySQL的索引,曾经进行过一次总结,文章链接在这里Mysql索引原理及其优化.1. 什么是索引?索引是一种数据结构,可以帮助我们快速的进行数据的查找.2. 索引是个什么样的数据结构呢?索引的数据结构和具体存储引擎的实现有关, 在MySQL中使用较多的索引有Hash索引,B+树索引等,而我们经常使用的InnoDB存储引擎的默认索引实现为:B+树索引.3. Hash索引和B+树所有有什么区别或者说优劣呢?首先要知道Hash索引和B+树索引的底层实现原理:.原创 2021-05-12 10:56:08 · 400 阅读 · 0 评论 -
数据库设计规范、E-R图、模型图
(1)数据库设计的优劣: 糟糕的数据库设计: ①数据冗余冗余、存储空间浪费。 ②数据更新和插入异常。 ③程序性能差。 良好的数据库设计 ①节省数据的存储空间。 ②能够保证数据的完整新。 ③方便进行数据应用系统的开发。 (2)软件项目开发周期中的数据库设计:一个完整的项目 开发需要经过:1.需求分析:分析客户的业务和数据处理需求。2.概要设计:设计数据库的E-R模型图,确认需求信息的正确和完整。详细设计:应用三大范式审核数据库结构,将E-R模型图转换为数据库模型图。转载 2020-09-15 15:43:17 · 2866 阅读 · 0 评论 -
OLTP、OLAP与HTAP
参考文章:OLTP、OLAP与HTAPOLTPOn-Line Transaction Processing联机事务处理过程(OLTP)也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。这样做的最大优点是可以即时地处理输入的数据,及时地回答。也称为实时系统(Real time System)。衡量联机事务处理结果的一个重要指标是系统性能,具体体现为实时请求-响应时间(Response Time)转载 2020-07-22 09:27:12 · 824 阅读 · 0 评论 -
TIDB和MySQL性能对比
对比TiDB和MySQL在大表复杂join方面,TiDB比MySQL快很多(至少三倍),这应该得益于TiDB的 分布式架构,把逻辑计算下推到各个数据节点并行执行导致的。由于TiDB有着很好的水平分布式扩展,突破了单实例容量的限制,和分库分表比,应该有着更好的优势。TiDB会降低开发和运维的复杂度,在2020到来之前,我继续调研这个数据库。目前计划先把tidb作为MySQL从库使用,架构如下:...转载 2020-07-21 14:04:50 · 4873 阅读 · 0 评论 -
日均数据量千万级,MySQL、TiDB 两种存储方案的落地对比
参考文章:日均数据量千万级,MySQL、TiDB 两种存储方案的落地对比盖娅广告匹配系统(GaeaAD)用于支撑盖娅互娱全平台实时广告投放系统,需要将广告数据和游戏 SDK 上报的信息进行近实时匹配,本质上来说需要实时的根据各个渠道的广告投放与相应渠道带来的游戏玩家数据进行计算,实现广告转化效果分钟级别的展现及优化。初期的MySQL存储方案在系统设计之初,基于对数据量的预估以及简化实现方案考虑,我们选用了高可用的 MySQL RDS 存储方案,当时的匹配逻辑主要通过 SQL 语句来实现,包含..转载 2020-07-21 13:59:13 · 1100 阅读 · 0 评论 -
一个长耗时SQL在TiDB和Mysql上的耗时测试
参考文章:一个长耗时SQL在TiDB和Mysql上的耗时测试之前看到的TiDB和MySql的性能对比都是大量短耗时请求下的压测,单机情况下TiDB和MySql的确有些差距,不过笔者最近碰到的场景更多是sql要扫描的行数不小的情况下单sql比较耗时的问题,所以自己做了个简单测试这类型sql的耗时。TiDB单机环境部署按照官方文档(https://pingcap.com/docs-cn/dev/how-to/get-started/deploy-tidb-from-docker-compose/)转载 2020-07-21 13:55:11 · 266 阅读 · 0 评论 -
TiDB 和 MySQL的差异
参考文章:TiDB 和 MySQL的差异站在业务开发的视角,TiDB 最吸引人的几大特性是:支持 MySQL 协议(开发接入成本低); 100% 支持事务(数据一致性实现简单、可靠); 无限水平拓展(不必考虑分库分表)。 基于这几大特性,TiDB 在业务开发中是值得推广和实践的,但是,它毕竟不是传统的关系型数据库,以致我们对关系型数据库的一些使用经验和积累,在 TiDB 中是存在差异的,现主要阐述“事务”和“查询”两方面的差异。TiDB 事务和 MySQL 事务的差异...转载 2020-07-21 13:52:54 · 1192 阅读 · 0 评论 -
MySQL的事务实现原理
参考文章:MySQL的事务实现原理1 开篇事务的目的是要实现可靠性以及并发处理。可靠性:数据库要保证当insert或update操作时抛异常或者数据库crash的时候需要保障数据的操作前后的一致,想要做到这个,我需要知道我修改之前和修改之后的状态,所以就有了undo log和redo log。并发处理:也就是说当多个并发请求过来,并且其中有一个请求是对数据修改操作的时候会有影响,为了避免读到脏数据,所以需要对事务之间的读写进行隔离,至于隔离到啥程度得看业务系统的场景了,实现这个就得用MyS转载 2020-06-18 17:06:56 · 1954 阅读 · 0 评论 -
mysql的索引底层原理详解
参考文章:mysql的索引底层原理什么是索引概念:索引是提高mysql查询效率的数据结构。总的一句话概括就是索引是一种数据结构。数据库查询是数据库的最主要功能之一。设计者们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找(linear search),这种复杂度为O(n)的算法在数据量很大时显然是糟糕的,好在计算机科学的发展提供了很多更优秀的查找算法,例如:有顺序查找、折半查找、快速查找等。但是每种查找算法都只能应用于特定转载 2020-06-18 16:39:43 · 560 阅读 · 0 评论 -
MySQL 四种事务隔离级别详解介绍(二)
参考文章:MySQL 四种事务隔离级别详解介绍事务特性ACID中,隔离性最为复杂,它指的是事务与事务之间不会互相影响,一个事务的中间状态不会被其他事务感知。事务的隔离性由低到高分为:Read uncommitted 、Read committed 、Repeatable read 、Serializable。不同的隔离性在并发事务下会引起不同的读现象:脏读、不可重复读和幻读。一、读现象及其区别1、脏读(读取了未提交的数据) 脏读又称无效数据的读出,是指在数据库访问中,事务T1将某一值修改,转载 2020-06-18 16:18:42 · 242 阅读 · 0 评论 -
MySQL和PostgreSQL在多表连接算法上的差异
参考文章:MySQL和PostgreSQL在多表连接算法上的差异我们知道mysql没有hash join,也没有merge join,所以在连接的时候只有一种算法nest loop join,nl join使用驱动表的结果集作为外表到内表中查找每一条记录,如果有索引,就会走索引扫描,没有索引就会全表扫。nl join并不能适用所有场景,例如两个表都是很大的表的等值连接,这种场景是hash join所擅长的,而且是生产环境中最常见的场景。mysql在这个时候就显得力不从心,所以在使用mysql时我们可转载 2020-06-18 16:15:07 · 413 阅读 · 0 评论 -
为什么MySQL的索引要使用B+树,而不是其它树?
参考文章:面试官:为什么MySQL的索引要使用B+树,而不是其它树?比如B树?InnoDB的一棵B+树可以存放多少行数据?答案:约2千万为什么是这么多?因为这是可以算出来的,要搞清楚这个问题,先从InnoDB索引数据结构、数据组织方式说起。计算机在存储数据的时候,有最小存储单元,这就好比现金的流通最小单位是一毛。在计算机中,磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)的最小单元是块,一个块的大小是4k,而对于InnoDB存储引擎也有自己的转载 2020-06-18 15:35:13 · 211 阅读 · 0 评论 -
B树、B-树、B+树、B*树的定义和区分
参考文章:B树、B-树、B+树的定义和区分B树另一个名字就是二叉树索引。每个节点的儿子节点都是两个,左边是比该节点小的,右边是比该节点大的,这两个索引的儿子节点同样是这种情况 所有的节点都是一个关键字正常情况来说如下:搜索的时候是从根节点开始搜索的。比如搜索的是35,则直接命中。如果搜索“28“,那就是比35小,左边节点,“17”,“28”比“17”大,则右边节点,直到命中。但是这种结构在进行节点删除等操作之后有可能出现以下情况:这时候虽然也是索引,但是搜索已经是线性的转载 2020-06-18 15:23:42 · 645 阅读 · 0 评论 -
MySQL 四种事务隔离级别详解介绍
参考文章:面试问烂的 MySQL 四种隔离级别,看完吊打面试官!什么是事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。另外,这篇分布式事务不理解?一次给你讲清楚!推荐大家阅读。事务的 ACID事务具有四个特征:原子性( Ato转载 2020-06-18 15:00:39 · 20639 阅读 · 0 评论 -
MySQL 是如何解决幻读的
参考文章:MySQL 到底是怎么解决幻读一、什么是幻读在一次事务里面,多次查询之后,结果集的个数不一致的情况叫做幻读。而多出来或者少的哪一行被叫做幻行。二、为什么要解决幻读在高并发数据库系统中,需要保证事务与事务之间的隔离性,还有事务本身的一致性。三、MySQL 是如何解决幻读的如果你看到了这篇文章,那么我会默认你了解了脏读 、不可重复读与可重复读。1. 多版本并发控制(MVCC)(快照读/一致性读)多数数据库都实现了多版本并发控制,并且都是靠保存数据快照来实现的。以 Inn转载 2020-06-18 14:43:17 · 445 阅读 · 0 评论 -
SQLite、MySQL与PostgreSQL三个关系数据库的比较
参考文章:SQLite、MySQL与PostgreSQL三个关系数据库的比较关系数据库管理系统(RDBMS)是世界上使用最广泛的数据库管理系统之一。基于Edgar F. Codd发明的关系模型,这些数据库以表格的形式存储数据,并允许通过建立表格之间的关系来链接数据。这导致了一种有效的数据存储机制,其中数据可以从数据库中的其他地方引用。在本文中,我们比较 了市场上 最流行的三种开源RDBMS。该比较深入研究了体系结构,业务连续性,用例和支持方面的差异,这些差异可帮助您在为应用程序执行数据库系统时做出明原创 2020-06-18 14:12:35 · 2257 阅读 · 0 评论 -
数据库里账号的密码,这样存放最安全!
参考文章:数据库里账号的密码,这样存放最安全!最早在大学的时候,只知道用 MD5 来存用户的账号的密码,但其实这非常不安全,而所用到的哈希函数,深入挖掘,也发现并不简单……一、普通的 Hash 函数哈希(散列)函数是什么就不赘述了。1、不推荐RC4, MD4, MD5, SHA-0, SHA-1, DES, 2DES 等2、推荐SHA-2(SHA-256, SHA-384, SHA-512)、SHA-3、Blake2 等美国国家标准和技术协会(NIST)宣布,2010 年后转载 2020-05-29 10:15:03 · 1655 阅读 · 0 评论 -
密集索引和稀疏索引的区别
参考文章:密集索引和稀疏索引的区别区别秘籍索引文件中的每个搜索码值都对应一个索引值 稀疏索引文件只为索引码的某些值建立索引项密集索引的定义:叶子节点保存的不只是键值,还保存了位于同一行记录里的其他列的信息,由于密集索引决定了表的物理排列顺序,一个表只有一个物理排列顺序,所以一个表只能创建一个密集索引稀疏索引:叶子节点仅保存了键位信息以及该行数据的地址,有的稀疏索引只保存了键位信息机器主键mysam存储引擎,不管是主键索引,唯一键索引还是普通索引都是稀疏索引innodb存储转载 2020-05-29 09:39:16 · 595 阅读 · 0 评论 -
数据库架构设计的三种模式
参考文章:数据库架构设计的三种模式:share nothing , share everythong , share diskShare-Nothing架构原理背景介绍Share nothing理论在数据库设计和优化中的实践应用,首先介绍share nothing概念。最早接触它是在 DataBaseManagentSystem一书的并行数据库章节中。并行数据库要求尽可能的去并行执行数...转载 2020-05-01 09:59:11 · 1797 阅读 · 0 评论 -
MySQL 5.7 Replication 相关新功能说明
参考文章:MySQL 5.7 Replication 相关新功能说明背景:MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制、基于组提交的并行复制、在线修改Replication Filter、GTID增强、半同步复制增强等。因为都是和复制相关,所以本文将针对这些新特性放一起进行说明,篇幅可能稍长,本文使用的MySQL版本是5.7.13。1,多源复制(多主一从)...转载 2020-04-28 10:17:33 · 845 阅读 · 0 评论 -
MYSQL优化策略
参考文章:MySQL千万级大表优化1. 背景介绍1.1 数据量:千万级千万级其实只是一个感官的数字,就是我们印象中的数据量大。这里我们需要把这个概念细化,因为随着业务和时间的变化,数据量也会有变化,我们应该是带着一种动态思维来审视这个指标,从而对于不同的场景我们应该有不同的处理策略。①数据量为千万级,可能达到亿级或者更高通常是一些数据流水,日志记录的业务,里面的数据随着时间...转载 2020-02-13 11:48:51 · 630 阅读 · 0 评论 -
MYSQL设计规范
参考文章:MySQL千万级大表优化1. 数据库改进方案:规范设计 业务层优化 架构层优化 数据库优化 管理优化黑格尔说:秩序是自由的第一条件。在分工协作的工作场景中尤其重要,否则团队之间互相牵制太多,问题多多。我想提到如下的几个规范,其实只是属于开发规范的一部分内容,可以作为参考。规范的本质不是解决问题,而是有效杜绝一些潜在问题,对于千万级大表要遵守的规范,我梳理了如...转载 2020-02-13 11:33:51 · 436 阅读 · 1 评论 -
MySQL参考手册第5章:日志管理
原文地址: https://blog.youkuaiyun.com/zzulp/article/details/28625603转载 2018-10-18 16:37:38 · 131 阅读 · 0 评论 -
mysql问题集
问题: You must reset your password using ALTER USER statement before executing this statement.答案: 安装完mysql 之后,登陆以后,不管运行任何命令,总是提示这个 step 1: SET PASSWORD = PASSWORD('your new password'); step 2: ...原创 2018-06-15 15:13:09 · 254 阅读 · 0 评论 -
防止SQL注入的几种方式
一、SQL注入简介SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库。二、SQL注入攻击的总体思路1.寻找到SQL注入的位置2.判断服务器类型和后台数据库类型3.针对不同的服务器和数据库特点进行SQL注入攻击三、SQL注入攻击实例比如在一个登录界面,要求输入用户名和密码...转载 2019-08-12 09:59:42 · 2073 阅读 · 0 评论 -
【explain】MySQL联表查询中的驱动表
原文地址: https://blog.youkuaiyun.com/u01转载 2018-07-18 10:36:59 · 763 阅读 · 0 评论 -
Mysql中Left Join 与Right Join 与 Inner Join 与 Full Join的区别
看看Left Join 与Right Join 与 Inner Join 与 Full Join对表进行操作后得到的结果。一. 在数据库中新建两张表,并插入要测试的数据。新建表:USE [Test] GO /****** 对象: Table [dbo].[EMP] 脚本日期: 06/22/2012 15:37:28 ******/ SET ANSI_NULLS O...转载 2018-07-18 10:34:57 · 410 阅读 · 0 评论 -
sql之left join、right join、inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举例如下: --------------------------------------------表A记录如下:aID aNum1 a...转载 2018-07-18 10:34:01 · 188 阅读 · 0 评论 -
MySQL JOIN原理
原文地址: https://www.cnblogs.com/shengdimaya/p/7123069.html先看一下实验的两张表:表comments,总行数28856表comments_for,总行数57,comments_id是有索引的,ID列为主键。以上两张表是我们测试的基础,然后看一下索引,comments_for这个表comments_id是有索引的,ID为主键...转载 2018-07-18 10:07:04 · 4003 阅读 · 0 评论 -
mySql的连接useSSL=false
web应用中连接mysql数据库时后台会出现这样的提示:Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be es...转载 2018-06-19 15:18:01 · 36842 阅读 · 4 评论 -
Druid监控功能的深入使用与配置-基于SpringBoot-完全使用 .properties配置文件
java实现的数据库连接池有很多,c3p0,dbcp等,还有号称速度最快的HikariCP,并且springboot2.0.2版本默认使用的就是HikariCP。为什么选用Druid呢?- 性能够好,比c3p0,dbcp强一些- 经过考验,毕竟是阿里开源出来的项目- 最关键的是带一个建议的数据库监控1234567能监控哪些数据呢?1. 数据源 2. SQL监控 对执行的MySQL语句进行...转载 2018-06-19 09:22:56 · 38101 阅读 · 2 评论 -
Centos7 安装mysql后登录提示:Access denied for user 'root'@'localhost'
原文地址: https://blog.youkuaiyun.com/u011323949/article/details/78206519安装mysql后登录提示:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:yes)解决如下:1.停止mysql服务systemctl stop mysqld.serv...转载 2018-06-15 15:06:44 · 1900 阅读 · 0 评论 -
CentOS 7下安装MySQL与mariadb冲突的解决办法
首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb。由于确定使用mysql,那只有卸载mariadb了。一、首先查看当前安装的mariadb包rpm -qa|grep mariadb本人得到结果是:mariadb-libs-5.5.44-2.el7.centos.x86_64二、...转载 2018-06-15 10:43:48 · 6275 阅读 · 0 评论