
Mysql
文章平均质量分 77
php【菜鸟】
革命尚未成功 同志还需努力
展开
-
后端程序员必备:书写高质量SQL的30条建议
sql 优化原创 2022-06-28 15:22:46 · 305 阅读 · 1 评论 -
水平分库分表的关键步骤和技术难点
分片技术的由来关系型数据库本身比较容易成为系统性能瓶颈,单机存储容量、连接数、处理能力等都很有限,数据库本身的“有状态性”导致了它并不像Web和应用服务器那么容易扩展。在互联网行业海量数据和高并发访问的考验下,聪明的技术人员提出了分库分表技术(有些地方也称为Sharding、分片)。同时,流行的分布式系统中间件(例如MongoDB、ElasticSearch等)均自身友好支持Sharding,其原理和思想都是大同小异的。分布式全局唯一ID在很多中小项目中,我们往往直接使用数据库自增特性来生成主键ID转载 2022-03-02 15:45:40 · 241 阅读 · 0 评论 -
分库分表的几种常见玩法及如何解决跨库查询等问题
在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战。让人感到担忧的是,他们系统真的就需要“分库分表”了吗?“分库分表”有那么容易实践吗?为此,笔者整理了分库分表中可能遇到的一些问题,并结合以往经验介绍了对应的解决思路和建议。垂直分表垂直分表在日常开发和设计中比较常见,通俗的说法叫做“大表拆小表”,拆分是基于关系型数据库中的“列”(字段)进行的。通转载 2022-03-02 15:44:38 · 3455 阅读 · 2 评论 -
mysql 面试精典问题
大家好~今天给大家分享MySQL常考的面试题,看看你们能答对多少本期MySQL面试题的目录如下: 事务的四大特性? 事务隔离级别有哪些? 索引 什么是索引? 索引的优缺点? 索引的作用? 什么情况下需要建索引? 什么情况下不建索引? 索引的数据结构 Hash索引和B+树索引的区别? 为什么B+树比B树更适合实现数据库索引? 索引有什么原创 2021-11-09 14:29:52 · 343 阅读 · 0 评论 -
为什么MySQL用B+树做索引
索引这个词,相信大多数人已经相当熟悉了,很多人都知道MySQL的索引主要以B+树为主,但是要问到为什么用B+树,恐怕很少有人能把前因后果讲述的很完整。本文就来从头到尾介绍下数据库的索引。索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。 索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义,如果我想要在[1,2,3,4]中找到4这个数据,直接对全数据检索也很快,没有必要费力气建索引再去查找。索引在mysql数据库中分三类:B+树索引、Hash索引、全文转载 2021-06-22 09:02:45 · 162 阅读 · 0 评论 -
SQL 优化极简法则
查询优化是一个复杂的工程,涉及从硬件到参数配置、不同数据库的解析器、优化器实现、SQL 语句的执行顺序、索引以及统计信息的采集等,甚至应用程序和系统的整体架构。本文介绍几个关键法则,可以帮助我们编写高效的 SQL 查询;尤其是对于初学者而言,这些法则至少可以避免我们写出性能很差的查询语句。以下法则适用于各种关系型数据库,包括但不限于:MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite 等。如果觉得文章有用,欢迎评论????、点赞????、推荐????法则一:只返转载 2020-11-04 17:23:42 · 160 阅读 · 0 评论 -
Mysql系列 子查询
子查询出现在select语句中的select语句,称为子查询或内查询。外部的select查询语句,称为主查询或外查询。子查询分类按结果集的行列数不同分为4种 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集有一行多列) 表子查询(结果集一般为多行多列) 按子查询出现在主查询中的不同位置分 select后面:仅仅支持标量子查询。 from后面:支持表子查询。 where或having后面:支持标原创 2020-10-10 15:49:25 · 227 阅读 · 0 评论 -
Mysql 细说NULL导致的神坑,让人防不胜防
比较运算符中使用NULLmysql> select 1>NULL;+--------+| 1>NULL |+--------+| NULL |+--------+1 row in set (0.00 sec)mysql> select 1<NULL;+--------+| 1<NULL |+--------+| NULL |+--------+1 row in set (0.00 sec)mysql> select 1&原创 2020-10-10 15:45:59 · 349 阅读 · 0 评论 -
导致MySQL索引失效的几种常见写法
这次的话简单说下如何防止你的索引失效。再说之前我先根据我最近的经验说下我对索引的看法,我觉得并不是所以的表都需要去建立索引,对于一些业务数据,可能量比较大了,查询数据已经有了一点压力,那么最简单、快速的办法就是建立合适的索引,但是有些业务可能表里就没多少数据,或者表的使用频率非常不高的情况下是没必要必须要去做索引的。就像我们有些表,2年了可能就10来条数据,有索引和没索引性能方面差不多多少。索引只是我们优化业务的一种方式,千万为了为了建索引而去建索引。下面是我此次测试使用的一张表结构以及一...转载 2020-09-17 14:33:54 · 168 阅读 · 0 评论 -
MySQL百万级数据库优化方案
首先声明是转的,感觉写的很细,原文链接:http://simpleframework.net/blog/v/7881.html1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:.转载 2020-08-03 10:40:22 · 868 阅读 · 0 评论 -
mysql技巧之数据去重并记录总数
1、使用distinct去重(适合查询整张表的总数)有多个学校+教师投稿,需要统计出作者的总数select count(author) as total from files每个作者都投稿很多,这里有重复的记录。select distinct author from files;有可能两个学校的教师姓名相同,结果只统计一个,出错。select distinct author,sid from files统计(作者+学校id)的组合唯一值,结果出现正确的结果,但如何知道一共有多少人呢?se.原创 2020-05-26 15:54:49 · 3087 阅读 · 0 评论 -
SQL中join的用法解析(inner join、full out join、left join)
话不多说,先上个对于各种join情况的总结图:例如有如下关系的数据:1、inner joinselect * from Table_ajoin Table_b on Table_a.id_a = Table_b.id_b2.1、full outer join等于full joinselect * from Table_a full join Table_b on Table_a.id_a = Table_b.id_b2.2、full outer ..转载 2020-05-25 16:29:17 · 649 阅读 · 0 评论 -
设计mysql索引的原则
1. 搜索的索引列,不一定是所要选择的列。换句话说,最适合索引的列是出现在WHERE 子句中的列,或连接子句中指定的列,而不是出现在SELECT 关键字后的选择列表中的列。 2. 使用惟一索引。考虑某列中值的分布。对于惟一值的列,索引的效果最好,而具有多个重复值的列,其索引效果最差。例如,存放年龄的列具有不同值,很容易区分各行。而用来记录性别的列,只含有“ M”和“F”,则对原创 2017-04-25 16:51:30 · 358 阅读 · 0 评论 -
每天定时备份数据库
每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据;需求:1,每天4点备份mysql数据;2,为节省空间,删除超过3个月的所有备份数据;3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据;#创建shell文件vim backup_mysql.shmysqldump -uroot -p1234原创 2017-05-04 14:17:36 · 412 阅读 · 0 评论 -
mysql 创建索引
1.添加PRIMARY KEY(主键索引)mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )2.添加UNIQUE(唯一索引)mysql>ALTER TABLE `table_name` ADD UNIQUE (`column`)3.添加INDEX(普通索引)mysql>ALTER TABL原创 2017-05-04 19:19:39 · 289 阅读 · 0 评论 -
渗透测试工具sqlmap基础教程
本文仅献给想学习渗透测试的sqlmap小白,大牛请绕过。>>对于网络安全人员来说,掌握渗透工具的使用方法是一项必备的技能。然而,一个没有师傅带领的小白在刚开始学习时,并不知道该如何入手进行渗透学习,所以本文旨在帮助这些小白入门。sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞。它由Python语言开发而成,因此运行需要安装python环境。原创 2017-06-12 20:30:55 · 401 阅读 · 0 评论 -
开启mysql慢查询日志
开启mysql慢查询日志查看配置://查看慢查询时间show variables like "long_query_time";默认10s//查看慢查询配置情况show status like "%slow_queries%";//查看慢查询日志路径 show variables like "%slow%";修改配置文件在my.ini原创 2017-06-13 19:59:12 · 315 阅读 · 0 评论 -
InnoDB引擎的索引和存储结构
1.MySQL主要存储引擎的区别MySQL默认的存储引擎是MyISAM,其他常用的就是InnoDB,另外还有MERGE、MEMORY(HEAP)等。(1)主要的几个存储引擎MyISAM管理非事务表,提供高速存储和检索,以及全文搜索能力。MyISAM是mysql的默认存储引擎。当create创建新表时,未指定新表的存储引擎时,默认使用MyISAM。每个MyISAM在磁盘上存储成三个文原创 2017-06-14 19:25:52 · 1277 阅读 · 0 评论 -
Mysql 根据时间戳按年月日分组统计
create_time时间格式SELECT DATE_FORMAT(create_time,'%Y%u') weeks,COUNT(id) COUNT FROM role GROUP BY weeks; SELECT DATE_FORMAT(create_time,'%Y%m%d') days,COUNT(id) COUNT FROM role GROUP B原创 2017-09-22 10:14:15 · 1337 阅读 · 0 评论 -
mysql性能优化 mysql慢查询分析、优化索引和配置
一、 优化概述MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上,我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态。除了服务器硬件的性能瓶颈,对于MySQL系统本身,我们可以使...原创 2018-06-12 17:38:19 · 248 阅读 · 0 评论 -
mysql alter 用法,修改表,字段等信息
修改字段的方式 方法有很多 我要说的 是用原生sql语句 编写 当然大家 也可以借助 mysql试图工具来修改一: 修改表信息1.修改表名alter table test_a rename to sys_app;2.修改表注释 alter table sys_application comment '系统信息表';二:修改字段信息1.修改字段类型...原创 2019-03-02 16:49:41 · 790 阅读 · 0 评论 -
MYSQL 性能优化常用方法
1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的,...转载 2019-06-25 15:08:49 · 173 阅读 · 0 评论 -
mysql使用explain优化sql语句
对于复杂、效率低的sql语句,我们通常是使用explain sql 来分析sql语句,这个语句可以打印出,语句的执行过程。这样方便我们分析,进行优化。首先,说一下,explain查询出来的数据如何分析。table :这一列是查询设计的表。type :很重要的一列,显示了查询使用了那种类型,是否使用的索引,能反映出语句的质量。一般这个指标从好到坏依次是:system...原创 2019-07-24 13:55:36 · 815 阅读 · 0 评论 -
mysql查询表里的重复数据方法
1 2 3 4 INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11') delete from hk_test where username='qmf1' and passwd='qmf1' ...原创 2019-08-08 11:34:31 · 27232 阅读 · 1 评论 -
Mysql 中 find_in_set() 与in、like的区别
在本教程中,您将学习如何使用MySQLFIND_IN_SET()函数返回指定字符串在以逗号分隔的字符串列表中的位置。MySQL FIND_IN_SET函数简介MySQL提供了一个名为FIND_IN_SET()的内置字符串函数,允许您在逗号分隔的字符串列表中查找指定字符串的位置。下面说明了FIND_IN_SET()函数的语法。FIND_IN_SET(needle,haysta...转载 2019-08-31 17:37:00 · 476 阅读 · 0 评论 -
MySQL 数据库相关规范
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/smartbetter/article/details/100160069好的数据库规范有助于减少软件实现的复杂度,降低沟通成本,本铁律主要涵盖了建库建表、建索引、写 SQL、ORM 映射等方面的处理约定。1.建库铁律 ...转载 2019-09-05 14:38:33 · 167 阅读 · 0 评论 -
SELECT COUNT语句使用
本文链接:https://blog.csdn.net/hollis_chuang/article/details/102657937数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删改查。在数据库的增删改查操作中,使用最频繁的就是查询操作。而在所有查询操作中,统计数量操作更是经常被用到。关于数据库中行数统计,无论是MySQL还是Or...转载 2019-11-13 14:24:19 · 691 阅读 · 0 评论 -
MySQL-锁,MySQL面试必备
本文链接:https://blog.csdn.net/sihai12345/article/details/102680104原文链接:blog.ouyangsihai.cn >>MySQL的又一神器-锁,MySQL面试必备在看这篇文章之前,我们回顾一下前面的几篇关于MySQL的文章,应该对你读下面的文章有所帮助。InnoDB与MyISAM等存储引擎对比 面试官问你B树...转载 2019-11-21 14:46:01 · 226 阅读 · 0 评论 -
SQL统计函数及分组操作
本文链接:https://blog.csdn.net/dingchenxixi/article/details/701936341.多表查询的操作、限制、笛卡尔积的问题2.统计函数及分组统计的操作3.子查询的操作,并且结合限定查询、数据排序、多表查询、统计查询一起完成各个复杂查询的操作4.数据库的更新操作:增加、修改、删除数据5.数据伪列的作用:ROWNUM,ROWID;6...转载 2019-11-22 16:19:13 · 438 阅读 · 0 评论 -
Hive常用的基础sql语法--聚合函数,分组函数的使用和多表查询
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/yu0_zhang0/article/details/790111921 聚合函数一句话概括什么是聚合函数:多行合并为一行。(大家应该明白了吧)常用函数:sum,count,max,min,avg。1 hive> select...转载 2019-11-27 11:44:12 · 1149 阅读 · 0 评论 -
MySQL数据库sql学习总结
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/weixin_43691058/article/details/103175678一、数据库简介二、MySQL数据类型三、Sql语句(1)Sql语句简介(2)数据定义语言DDLcreate,alter,drop...转载 2019-11-30 11:11:47 · 279 阅读 · 0 评论 -
数据库面试4连问:分库分表,中间件,优缺点,如何拆分?
数据库考点:为什么要分库分表?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?如何对数据库如何进行拆分?01 为什么要分库分表?(设计高并发系统的时候,数据库层面该如何设计?)说白了,分库分表是两回事儿,大家可别搞混了,可能是光分库不分表,也可能是光分表不分库,都有可能。(1)先给大家抛出来一个场景假如我们现在是一个小创业公司(或者是一个 BAT 公司刚兴起的一个新...原创 2019-12-07 14:25:49 · 1733 阅读 · 1 评论 -
SQL查询语句大全
前言在一级项目组时,监控服务器的同时,总结了一下SQL关于查询的语句,希望能给大家带来一些帮助推荐两个博客,下面借鉴了这两个菜鸟教程网上大佬的之前的总结这次在之前的基础上扩展一些内容,分别在字句的后面扩展更多的表达式或者函数。下面会用到一级中具体某个表,会有说明SelectSelect+聚合函数总数count(*)表示计算总行数,括号中写星与列名,结果相同...转载 2020-01-15 15:55:43 · 2352 阅读 · 0 评论 -
个人总结sql 查询慢的48个原因分析
sql分享个人总结sql 查询慢的48个原因分析 查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最...转载 2020-01-15 15:56:56 · 600 阅读 · 0 评论 -
MySQL数据库面试题最新 超详细
数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)索引有哪几种类型?索引的数据结构(b树,hash)索引的基本原理索引算法有哪些转载 2020-05-14 11:10:34 · 1113 阅读 · 0 评论