MySQL
文章平均质量分 89
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
祁娥安
我是一名90后程序员,终身学习者。 背景很普通,来自农村,毕业于一所普通大学。 没有光环,所以从大学起一路自学,大四开始做开发工作。 平时喜欢研究各种技术,目前在一家小厂从事前/后端开发工作。 爱好一切有趣的事物,热爱生活、热爱工作、热爱coding、热爱交朋友。在业内混迹多年, 酷爱各种技术,不论前端后端还是移动端,总之各种端。 平时喜欢看技术书籍、逛技术博客论坛、爱玩吉他唱歌和打篮球, coding,根本停不下来。 The Code Can Change The World.
展开
-
SQL优化不会?推荐4 款工具
对于正在运行的mysql 性能如何?参数设置的是否合理?账号设置的是否存在安全隐患?是否了然于胸?俗话说工欲善其事,必先利其器,定期对你的MYSQL数据库进行一个体检,是保证数据库安全运行的重要手段。今天和大家分享几个mysql 优化的工具,你可以使用它们对你的mysql进行一个体检,生成awr报告,让你从整体上把握你的数据库的性能情况。1、mysqltuner.pl这是mysql一个常用的数据库性能诊断工具,主要检查参数设置的合理性包括日志文件、存储引擎、安全建议及性能分析。针对潜在的问题,给出原创 2021-11-10 21:48:39 · 798 阅读 · 0 评论 -
MySQL索引和SQL调优手册
MySQL索引MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引。MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。MySQL索引原理索引目的索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要原创 2021-11-07 12:36:47 · 197 阅读 · 0 评论 -
分库分表有哪些思路和技巧?
一个完整电商系统用户从零到上亿的研发过程,在业务的不断发展与变化过程中,演化出电商系统和基于大数据的商品精准实时推荐平台。在系统的研发过程中,随着数据量的不断增长,单库单表已无法满足数据的存储需求,此时,我们就需要对数据库进行分库分表操作。那在互联网大厂,分库分表通常有哪些思路和技巧呢?今天,我就将这些思路和技巧分享给大家。分库分表分库分表是随着业务的不断发展,单库单表无法承载整体的数据存储时,采取的一种将整体数据分散存储到不同服务器上的不同数据库中的不同数据表的存储方案。分库分表能够有效的缓解原创 2021-11-06 22:37:56 · 491 阅读 · 0 评论 -
必须了解的mysql三大日志-binlog、redo log和undo log
背景日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志( binlog )和事务日志(包括redo log 和 undo log ),本文接下来会详细介绍这三种日志。binlogbinlog 用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。binlog 是 mysql的逻辑日志,并且由 Server 层进行记录,使用任何存原创 2021-11-04 11:39:19 · 193 阅读 · 0 评论 -
如果MySQL的自增 ID 用完了,怎么办?
如果你用过或了解过MySQL,那你一定知道自增主键了。每个自增id都是定义了初始值,然后按照指定步长增长(默认步长是1)。虽然,自然数是没有上限的,但是我们在设计表结构的时候,通常都会指定字段长度,那么,这时候id就有上限了。既然有上限,就总有被用完的时候,如果id用完了,怎么办呢?今天就一起来学习下吧。自增id说到自增id,相信你的第一反应一定是在设计表结构的时候自定义一个自增id字段,那么就有一个问题啦,在插入数据时有可能唯一主键冲、sql事务回滚、批量插入的时候,批量申请自增值等原因导致自增i原创 2021-10-15 20:32:46 · 1114 阅读 · 1 评论 -
9 道 MySQL 面试题
MySQL 一直是本人很薄弱的部分,后面会多输出 MySQL 的文章贡献给大家,毕竟 MySQL 涉及到数据存储、锁、磁盘寻道、分页等操作系统概念,而且互联网对 MySQL 的注重程度是不言而喻的,后面要加紧对 MySQL 的研究。写的如果不好,还请大家见谅。非关系型数据库和关系型数据库区别,优势比较非关系型数据库(感觉翻译不是很准确)称为 NoSQL,也就是 Not Only SQL,不仅仅...原创 2020-04-26 20:53:53 · 1056 阅读 · 0 评论 -
MySQL 服务占用cpu 100%,如何排查问题?
一、引子对于互联网公司,线上CPU飙升的问题很常见(例如某个活动开始,流量突然飙升时),按照本文的步骤排查,基本1分钟即可搞定!特此整理排查方法一篇,供大家参考讨论提高。二、问题复现线上系统突然运行缓慢,CPU飙升,甚至到100%,以及Full GC次数过多,接着就是各种报警:例如接口超时报警等。此时急需快速线上排查问题。三、问题排查不管什么问题,既然是CPU飙升,肯定是查一下耗CPU的...原创 2020-03-26 11:51:50 · 4368 阅读 · 0 评论 -
谈谈MySQL 索引,B+树原理,以及建索引的几大原则
MYSQL一直了解得都不多,之前写sql准备提交生产环境之前的时候,老员工帮我检查了下sql,让修改了一下存储引擎,当时我使用的是Myisam,后面改成InnoDB了。为什么要改成这样,之前都没有听过存储引擎,于是网上查了一下。实上使用不同的存储引擎也是有很大区别的,下面猿友们可以了解一下。一、存储引擎的比较注:上面提到的B树索引并没有指出是B-Tree和B+Tree索引,但是B-树和B+...原创 2020-03-26 11:43:04 · 414 阅读 · 1 评论 -
事务隔离级别中的可重复读能防幻读吗?
前言每次谈到数据库的事务隔离级别,大家一定会看到这张表。其中,可重复读这个隔离级别,有效地防止了脏读和不可重复读,但仍然可能发生幻读,可能发生幻读就表示可重复读这个隔离级别防不住幻读吗?我不管从数据库方面的教科书还是一些网络教程上,经常看到RR级别是可以重复读的,但是无法解决幻读,只有可串行化(Serializable)才能解决幻读,这个说法是否正确呢?在这篇文章中,我将重点围绕MySQ...原创 2020-03-25 18:23:28 · 709 阅读 · 1 评论 -
MySQL数据库快问快答
前言今天给大家列一下关于数据库几个常见问题的要点,如果大家对其中的问题感兴趣,可以自行扩展研究。1、UNION ALL 与 UNION 的区别UNION和UNION ALL关键字都是将两个结果集合并为一个。UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。而UNION ALL只是简单的将两个结果合并后就返回。由于UNI...原创 2020-03-25 17:48:24 · 123 阅读 · 0 评论 -
MySQL索引是如何提高查询效率的呢?
About MySQLMySQL(读作/maɪ ˈsiːkwəl/“My Sequel”)是一个开放源码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,目前为Oracle旗下产品。被甲骨文公司收购后,自由软件社群们对于Oracle是否还会持续支持MySQL社群版(MySQL之中唯一的免费版本)有所隐忧,因此MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划Maria...原创 2020-03-25 12:59:10 · 2730 阅读 · 1 评论 -
盘点那些面试中最常问的MySQL问题
1、MySQL中myisam与innodb的区别MyISAM:不支持事务,但是每次查询都是原子的;支持表级锁,即每次操作对整个表加锁;存储表的总行数;一个MYISAM表有三个文件:索引文件、表结构文件、数据文件;采用非聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本一致,但是辅索引不用保证唯一性。InnoDb:支持ACID的事务,支持事务的四种隔离级别;支持行...原创 2020-03-25 12:30:59 · 1226 阅读 · 0 评论 -
解释一下MySQL中内连接,外连接等的区别
下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。具体分解如下:1.INNER JOIN(内连接)SELECT <select_list> FROM Table_A AINNER JOIN Table_B BON A.Key = B.Key2.LEFT JOIN(左连接)SELECT <sel...原创 2020-03-25 12:22:52 · 473 阅读 · 0 评论 -
如何去写一手好SQL?
MySQL性能最大数据量抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。分页查询最新的20条记录耗时0.6...原创 2020-03-16 13:39:24 · 125 阅读 · 0 评论 -
MySQL学习笔记
以下为本人初学 MySQL 时做的笔记,也从那时起没再更新过,但还是囊括了基本的知识点,有时还翻出来查查。Windows服务-- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格)连接与断开服务器mysql -h 地址 -P 端口 -u ...原创 2019-12-02 12:58:26 · 111 阅读 · 0 评论 -
MySQL修改字符集
一、修改my.ini配置文件(mysql配置文件)character_set_server = utf8 #设置字符集重启mysql数据库服务查看数据库表结构show create database db_user;show create table tb_user;查看当前数据库字符集show variables like'%char%';show VARIABLES lik...原创 2019-11-21 21:13:56 · 211 阅读 · 0 评论 -
MySQL数据库
数据库作为程序中数据的主要载体,在整个项目中扮演着重要的角色。PHP自身可以与大多数数据库进行连接,但MySQL数据库树开源界所公认的与PHP结合最好的数据库,它具有安全、跨平台、体积小和高效等特点,可谓PHP的“黄金搭档”。MySQL简介PHP在开发Web站点或一些管理系统时,需要对大量的数据进行保存。XML文件和文本文件虽然可以作为数据的载体,但不易进行管理和对大量数据的存储,所以在项目开...原创 2019-11-22 17:34:58 · 9896 阅读 · 0 评论 -
MySQL中count(1)、count(*) 与 count(列名) 的执行区别
执行效果:1、count(1) and count(*)当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count()用时多了!从执行计划来看,count(1)和count()的效果是一样的。但是在表做过分析之后,count(1)会比count(*)的用时少些(1w以内数据量),不过差不了多少。如果count(1)是聚索引,id,那肯定是count(1)快,但是差的很小的...原创 2019-11-04 20:21:50 · 22114 阅读 · 0 评论 -
专业的MySQL开发规范
数据库对象命名规范数据库对象命名规范的对象是指数据库SCHEMA、表TABLE、索引INDEX、约束CONSTRAINTS等的命名约定数据库对象命名原则命名使用具有意义的英文词汇,词汇中间以下划线分隔命名只能使用英文字母、数字、下划线避免用MySQL的保留字如:call、group等所有数据库对象使用小写字母数据库命名规范数据库名不能超过30个字符数据库命名必须为项目英文...原创 2019-11-04 18:13:08 · 119 阅读 · 0 评论