![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL学习
文章平均质量分 79
程序员陈_明勇
一个热爱技术,喜欢专研技术的程序员。成功的路上并不拥挤,有没有兴趣结个伴?
展开
-
MySQL分区表
MySQL分区表MySQL分区表分区表的特点分区键分区类型RANGE分区RANGE分区忒点建立分区RANGE分区使用场景MySQL分区表分区表的特点在逻辑上为一个表,在物理上表数据存储于多个文件中。分区键分区引入了分区键的概念,分区键用于根据某个区间值、特定值、或者HASH函数值执行数据的聚集,让数据根据规则分布在不同的分区中。分区类型RANGE分区LIST分区HASH分区无论是哪种分区类型,要么分区表上没有主键/唯一键,要么分区表的主键/唯一键都必须包括分区键,也就是说不能使用主键原创 2020-08-12 09:38:25 · 724 阅读 · 0 评论 -
MySQL整体优化思路
MySQL整体优化思路硬件相关优化CPU相关优化内存相关优化磁盘相关优化系统层面优化调整 I/O 调度算法文件系统选择调整内核参数MySQL层优化参数优化MySQL 设计优化总结硬件相关优化在 MySQL 整体的优化环节中,硬件相关的优化必不可少,因此来聊聊这一方面的优化策略CPU相关优化关闭 CPU 节能,设定为最大性能模式考虑到在高并发之前没有任何连接的情况,机器可能会处于节电模式,高并发场景来临时可能导致处理不过来新的请求。配置合理的 CPU 核数和选择合适的 CPU 主频原创 2020-08-11 19:49:21 · 334 阅读 · 0 评论 -
数据库锁
数据库锁锁的分类表锁(偏向于读锁)表锁案例表锁总结行锁(偏向于写锁)行锁案例如何分析行锁定如何锁定一行间隙锁什么是间隙锁间隙锁的危害锁的分类表锁行锁间隙锁锁是计算机协调多个进程或线程并发访问某一资源的机制表锁(偏向于读锁)偏向MyISAM存储引擎,开销小,加锁快;无死锁,锁定粒度大,发送锁冲突的概率最高,并发度低表锁案例手动添加表锁lock table tb_name1(表名) read(write),tb_name1(表名) read(write)可一次性给多个表添加表锁,可以原创 2020-08-11 14:09:50 · 857 阅读 · 0 评论 -
SQL-explain
什么是explain?使用explain关键字可以模拟优化器执行SQL查询语句,从而了解MYSQL是如何处理SQL语句explain的作用我们使用explain关键字可以知道以下内容:表的读取顺序数据读取操作的操作类型哪些索引被使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查询如何使用explainexplain + SQL语句explain字段解释idselect_typetablepartitionstypepossible_keyskeyke原创 2020-08-07 13:23:06 · 694 阅读 · 0 评论 -
SQL-影响服务器性能的几个方面
影响服务器性能的几个方面服务器硬件服务器操作系统数据库存储引擎的选择数据库参数配置数据库结构设计和SQL语句SQL性能下降的原因查询语句不是最优索引失效关联查询过多john服务器调优和各个参数设置不好...原创 2020-08-07 12:03:24 · 621 阅读 · 0 评论 -
MySQL基准测试
MySQL基准测试什么是基准测试基准测试是一种测量和评估软件性能指标的活动,它用于建立某个时刻的性能基准,以便当系统发生软硬件变化时重新进行基准测试以评估变化对性能的影响基准测试是针对系统设置的一种压力测试基准测试特点直接、简单、易于比较,用于评估服务器的处理能力可以不关心业务逻辑,所使用的查询和业务的真实性可以和业务环境没关系压力测试特点对真实的业务数据进行测试,获得真实系统所能承受的压力需要针对不同主题,所使用的数据和查询也是真实用到的基准测试是简化了的压力测试基准测试的目原创 2020-08-03 11:51:33 · 195 阅读 · 0 评论 -
Memory存储引擎
MySQL引擎之MemoryMemory存储引擎也称HEAP存储引擎,所有的数据都保存在内存中,如果MySQL服务重启,数据将会丢失,但是表的结构会保存下来功能特点支持HASH索引和BTree索引(默认HASH索引)所有字段都为固定长度,例如varchar(10)=char(10)不支持BLOB和TEXT等大字段Memory存储引擎使用表级锁如何选择存储引擎如果要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个好的选择如果数据表主要用原创 2020-08-03 11:33:02 · 1489 阅读 · 0 评论 -
CSV存储引擎
MySQL引擎之CSVCSV存储引擎可以将CSV文件作为MySQL表来处理,这种存储引擎的存储格式的就是普通的CSV文件文件系统存储特点数据以文本方式存储在文件中.CSV文件存储表内容.CSM文件存储表的元数据如表状态和数据量.frm文件存储表结构信息CSV 存储引擎特点以CSV格式进行数据存储不支持自增(创建表时,不能设置自增)不支持索引(由于创建表时主键会自动添加索引,所以也不能设置主键)不支持空字段(创建表时,不能有空字段)若修改了 .CSV 文件,则需要flush ta原创 2020-08-03 11:13:55 · 377 阅读 · 0 评论 -
InnoDB存储引擎
MySQL引擎之Innodb存储引擎InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),它是MYSQL版本5.5之后的默认存储引擎Innodb使用表空间进行数据存储查看表空间:show variables like 'innodb_file_per_table';展示结果:Value值:ON:独立表空间,tablename.ibdOFF:系统表空间,ibdataX ,X是一个数字系统表空间和独立表空间如何选择?系统表空间会产生IO瓶颈,刷新数据的时候是顺序进行的所以会原创 2020-08-03 10:54:41 · 149 阅读 · 0 评论 -
MyISAM存储引擎
MySQL引擎之MyISAMMyISAM引擎作为MYSQL5.5版本之前的默认存储引擎,创建表时如果使用这个存储引擎,成功创建表后将会生成MYD(数据文件)和MYI(索引文件)两个文件什么是锁锁主要作用是管理共享资源的并发访问锁用于实现事务的隔离性锁的类型共享锁(也称读锁):针对同一份数据,多个读操作可以同时进行而且不会相互影响独占锁(也称写锁):当前写操作没有完成之前,会阻断所有要进行读写的操作锁的粒度表级锁行级锁MyISAM存储引擎特性不支持事务、不具备AICD特性原创 2020-08-03 10:15:59 · 1057 阅读 · 0 评论 -
数据库存储引擎
数据库存储引擎服务层第二层为服务层,它是MySQL的核心,MySQL的核心服务都在这一层,;例如查询解析,SQL执行计划分析,SQL执行计划优化,查询缓存,以及跨存储引擎的功能都在这一层实现:存储过程,触发器,视图等。现在通过下图来观察服务层的内部结构:存储引擎层这一层负责MySQL中数据的存储和提取。 服务器中的查询执行引擎通过API与存储引擎进行通信,通过接口屏蔽了不同存储引擎之间的差异。MySQL采用插件式的存储引擎,它为我们提供了许多存储引擎,每种存储引擎有不同的特点。我们可以根据不同的原创 2020-08-03 10:07:19 · 216 阅读 · 0 评论 -
SQL高级-账户管理
账户管理账户管理创建用户修改用户删除用户查看用户权限授予权限列表账户管理MySQL账户体系:根据账户所具有的权限的不同,MySQL的账户可以分为以下几种:务实例级账号:,启动了一个mysqld,即为一个数据库实例;如果某用户如root,拥有服务实例级分配的权限,那么该账号就可以删除所有的数据库、连同这些库中的表数据库级别账号:对特定数据库执行增删改查的所有操作数据表级别账号:对特定表执行增删改查等所有操作字段级别的权限:对某些表的特定字段进行操作存储程序级别的账号:对存储程序进行增删改查的原创 2020-07-30 14:02:08 · 484 阅读 · 0 评论 -
SQL高级-索引
索引什么是索引索引的优缺点索引原理索引的使用索引案例什么是索引索引是一种特殊的查询表,可以被数据库搜索引擎用来加速数据的检索。简单说来,索引就是指向表中数据的指针。数据库的索引同书籍目录的索引非常相像索引的优缺点优点加快查询速度通过创建唯一索引,保证数据库表每行数据的唯一性在使用分组和排序进行数据查询时,可以显著减少查询中分组和排序的时间缺点维护索引需要耗费数据库资源当对表的数据进行增删改的时候,因为要维护索引,速度会受到影响索引原理B treeB树是一种多路自平衡原创 2020-07-30 12:36:34 · 911 阅读 · 0 评论 -
SQL高级-事务
为什么有事务事务广泛的运用于订单系统、银行系统等多种场景举例:如果用A账户转账给B账户500块,步骤分为三步1、查询A账户余额是否大于等于5002、A账户余额减少5003、B账户余额增加500如果执行第二步之后银行系统出现了故障,就会导致A账户余额减少500,而B账户余额没有增加,所以要想解决这个问题,要么三个步骤都执行,要么都不执行,事务的出现就是解决这个问题什么是事务事务是保持逻辑数据一致性与可恢复性的单位,它是一个操作序列,这些操作要么都执行,要么都不执行事务的四大特性(ACI原创 2020-07-30 11:24:37 · 307 阅读 · 0 评论 -
SQL高级-VIEW(视图)
视图什么是视图创建视图查看视图查询视图更新视图删除视图视图的作用什么是视图视图是一张虚拟表,它是基于SQL语句的结果集的可视化表创建视图语法CREATE VIEW 视图名AS SELECT 列名WHERE 条件;代码示例CREATE VIEW v_stu AS SELECT s_name FROM students;查看视图查看所有的表时视图也在其中代码示例SHOW TABLES;查询视图语法SELECT * FROM 视图名;和查询表时是一样的代码示例SE原创 2020-07-28 21:21:37 · 922 阅读 · 0 评论 -
python连接mysql数据库
安装mysqlWindows系统下的安装python3: pip install pymysqlpython2: pip install MySQLdbUbantu系统下的安装:https://www.jianshu.com/p/d84cdb5e6273.python连接mysql1、创建Connection对象创建对象:调用connect()方法connect()对应参数"""参数host:连接的mysql主机,如果本机是'localhost'参数port:连接的mysql主机的端原创 2020-07-25 16:02:50 · 198 阅读 · 0 评论 -
SQL分表
分表分表是因为当一张表的数据量比较多时,但是我们只需要查询其中的某个字段数据,就会导致查询效率降低,这时可以将所查询的字段数据存到另一个表里goods表创建一个商品分类表查询goods表中的name并插入到商品分类表里INSERT INTO goods_cates (name) SELECT cate_name FROM goods GROUP BY cate_name;运行结果将goods表中的name值更改为商品分类表对应的id值UPDATE goods INNER JOIN原创 2020-07-25 15:13:59 · 1580 阅读 · 0 评论 -
SQL外键约束
SQL外键约束外键约束添加外键约束删除外键约束外键约束一个表中的 FOREIGN KEY(外键) 指向另一个表中的 PRIMARY KEY(主键)FOREIGN KEY 约束用于预防破坏表之间连接的动作FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一通过两个表举例外键:student表class表student表里的cid作为外键指向class表里的idstudent表里的cid是student表里的外键class表里的id是clas原创 2020-07-25 14:47:23 · 3397 阅读 · 0 评论 -
SQL自关联
自关联简单理解就是一个表与自身连接举例说明areas表上面是areas表的部分数据,从数据中可以看出一个规律,中国包含海南,中国的id是1,然后海南的pid也是1,接着海南的id是9,所以海南所包含的市的pid就是9,这样我们就可以很便捷的查出海南所包含的市有哪些了通过表连接实现代码示例SELECT a.* FROM areas aJOIN areas b ON a.pid=b.id WHERE b.name='海南';运行结果:通过子查询实现我们也可以通过子查询得到海原创 2020-07-25 14:06:32 · 3675 阅读 · 0 评论 -
SQL子查询的使用
子查询子查询就是将一个查询(子查询)的结果作为另一个查询(主查询)的数据来源或判断条件的查询。子查询的使用students表查询身高 高于 平均身高的学生的姓名,性别,年龄和身高代码示例:SELECT s_name,gender,age,height FROM studentsWHERE height>(SELECT avg(height) FROM students);运行结果:...原创 2020-07-23 16:53:25 · 345 阅读 · 0 评论 -
SQL表连接的几种方式
表连接的几种方式表表连接分类举例说明表这里有两张表,分别和学生表和选课表studentssnos_namegenderageheightspeciality1001张三男181.78计算机1002李四男251.80计算机1003王五女191.67会计1004赵六男221.72物流管理1005麦赖女301.70商务英语1006孙七女281.77物流管理1007周八男221原创 2020-07-23 16:37:20 · 3620 阅读 · 0 评论 -
SQL语句-LIMIT的使用
LIMIT子句可以被用于强制 SELECT 语句返回指定的记录数,常用于分页查询格式格式:SELECT * FROM 表名 LIMIT i, ni为索引值,默认从0开始,i=0时可以省略不写in为查询结果的数量代码示例查询前三条记录SELECT sno, s_name, gender FROM students LIMIT 3;SELECT sno, s_name, gender FROM students LIMIT 0,3;查询索引从5到6,两条记录SELECT s.原创 2020-07-23 15:52:28 · 220 阅读 · 0 评论 -
SQL语句-ORDER BY排序
当查询数据库里的数据时,为了使数据不那么凌乱,我们可以对数据进行排序处理排序格式:ORDER BY 字段 默认升序ORDER BY 字段 ASC 升序ORDER BY 字段 DESC 降序表snos_namegenderageheightspeciality1001张三男181.78计算机1002李四男251.80计算机1003王五女191.67会计1004赵六男221.72物流管理1005麦赖女3原创 2020-07-23 15:28:27 · 2131 阅读 · 0 评论 -
SQL语句-分组查询
分组查询表分组查询GroupBy+Group_concat分组查询+聚合函数分组查询+havingwhere和having的区别表snos_namegenderspeciality1001张三男计算机1002李四男计算机1003王五女会计1004赵六男物流管理1005麦赖女商务英语1006孙七女物流管理1007周八男物联网1008吴九女通信工程1009郑十男网络工程分组查询原创 2020-07-23 15:01:23 · 2145 阅读 · 0 评论 -
SQL语句对表数据的操作
数据的操作表示例新增数据整行插入指定列中插入数据指定列中插入多条数据修改数据删除数据查询数据查询整个表的数据查询指定字段数据查询指定字段数据并起别名查询指定字段数据并去重where子句比较运算符逻辑运算符模糊查询范围查询空与非空判断常用聚合函数count()求总数sum()求和avg()求平均值max()求最大值min()求最小值自增值问题物理删除与逻辑删除表示例数据的操作以这个表为例子新增数据整行插入INSERT INTO 表名 VALUES(值1,值2,值3...);代码示例INSER原创 2020-07-21 13:07:21 · 3298 阅读 · 0 评论 -
SQL语句-操作数据库(DDL)
@TOC数据库的连接与退出数据库连接语句:mysql -u用户名 -p密码如果不想让别人看到密码,则先输入mysql -u用户名 -p,之后会跳出enter password:输入密码即可连接数据库退出exit或quit原创 2020-07-18 16:57:19 · 516 阅读 · 0 评论 -
SQL语法基础
SQL语法基础SQLSQL介绍SQL语句数据完整性数据类型常用类型数值类型日期时间类型枚举类型字符串类型约束SQLSQL介绍结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,我们可以使用SQL操作关系型数据库(sql server,oracle,mysql等)SQL语句DDL语句: 数据定义语言(Data Ddefinition Language),对逻辑结构等操原创 2020-07-18 14:59:49 · 920 阅读 · 0 评论 -
MySQL数据库
MySQL数据库数据库介绍为什么学数据库数据库介绍数据库存储数据的特点数据库的分类关系型数据库非关系型数据库MySQL数据库介绍与安装MySQL数据库介绍MySQL安装图形界面管理工具常用工具数据库介绍为什么学数据库一般情况下,我们存储数据时都会在本地建立一些文件去存储,如文本文件、excel文件等,但是当数据量很大时,或者更新过于频繁时,就会有多个版本的文件,我们想要查询与管理这些数据就不容易了,这时候,为了解决这个问题,数据库就此诞生了数据库介绍数据库(database)简称DB,实际上就是一原创 2020-07-18 13:23:49 · 1140 阅读 · 0 评论