数据库优化
白菜执笔人
这个作者很懒,什么都没留下…
展开
-
MySQL 操作规范
数据库优化 学习笔记一、命名规范表名建议使用有业务意义的英文词汇,必要时可加数字和下划线,并以英文字母开头库、表、字段全部采用小写。(MySQL 在 Linux 下默认是区分大小写的,而在 Windows 下不区分大小写。因此,防止出现问题,建议都设置为小写。)避免用 MySQL 的保留字命名(包括表名、列名)禁止超过 30 个字符临时库、表名必须以 tmp 为...原创 2020-01-12 15:13:07 · 120 阅读 · 0 评论 -
主从复制(了解)
数据库优化 学习笔记一、主从复制1.1、复制的基本原理1.2、复制的三步骤master 将改变记录到二进制日志。这些记录过程叫做二进制日志事件,binary log eventsslave 将 master 的 binary log events 拷贝到它的中继日志slave 重做中继日志中的事件,将改变应用到自己的数据库中。MySQL 复制是异步的且串行的...原创 2020-01-12 14:53:42 · 99 阅读 · 0 评论 -
MySQL 分区表
数据库优化 学习笔记一、MySQL分区表1.1、分区表的特点 -- 在逻辑上为一个表, 在物理上存储在多个文件中 create table `login_log`( login_id int(10) unsigned not null comment '登录用户id', login_time timestamp not null default current_time...原创 2020-01-12 13:35:09 · 100 阅读 · 0 评论 -
数据库锁
数据库优化 学习笔记 数据库的锁大致有三类,表锁、行锁、间隙所。锁是计算机协调多个进程或线程并发访问某一资源的机制。一、表锁(适合用来“读”) 特点: 偏向 MyISAM 存储引擎,开销小,加锁快,无死锁,锁定粒度大,发送锁冲突的概率最高,并发度低1.1、表锁案例建表...原创 2020-01-07 21:46:23 · 185 阅读 · 0 评论 -
Show Profile 进行 SQL 分析
数据库优化 学习笔记一、Show Profile 进行 SQL 分析 是 MySQL 提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于 SQL 的调优的测量。默认情况下,参数处于关闭状态,并保存最近 15 次的运行结果。1.1、Show Profile 分析步骤是否支持,看看当前 MySQL 版本是否支持(大于 5....原创 2020-01-07 16:53:01 · 114 阅读 · 0 评论 -
慢查询日志
数据库优化 学习笔记一、慢查询日志1.1、MySQL 的慢查询日志MySQL 提供的一种日志记录,它用来记录在 MySQL 中响应时间超过阙值的语句,具体指运行时间超过 long_query_time 值的 SQL,则会被记录到慢查询日志中。具体指运行时间超过 long_query_time 值得 SQL,则会被记录到慢查询日志中。 long_query_time 的默认值为1...原创 2020-01-06 21:52:12 · 122 阅读 · 0 评论 -
排序优化
数据库优化 学习笔记一、排序优化1.1、分析观察,至少跑一天,看看生产的慢SQL情况开启慢查询日志,设置阙值,比如超过 5 秒钟的就是慢 SQL,并抓取出来explain + 慢 SQL 分析show profile进行 SQL 数据库服务器的参数调优(运维 orDBA 来做)1.2、总结慢查询的开启并捕获explain + 慢 SQL 分析show profil...原创 2020-01-05 20:10:24 · 270 阅读 · 0 评论 -
索引优化
数据库优化 学习笔记一、优化口诀全值匹配我最爱,最左前缀要遵守带头大哥不能挂,中间兄弟不能断索引列上少计算,范围之后全失效like 百分写最右,覆盖索引不写星不等空值还有or,索引失效要少用varchar 引号不可丢,SQL高级也不难建表 create table staffs( id int primary key auto_incr...原创 2020-01-05 18:42:54 · 93 阅读 · 0 评论 -
表优化
数据库优化 学习笔记一、单表优化建表 create table article( id int unsigned not null primary key auto_increment, author_id int unsigned not null, category_id int unsigned not null, views int uns...原创 2020-01-05 15:54:19 · 206 阅读 · 0 评论 -
explain 分析 SQL 语句
数据库优化 学习笔记一、影响服务器性能的几个方面1.1、影响因素服务器硬件服务器的操作系统数据库存储引擎的选择数据库参数配置数据库结构设计和SQL语句1.2、SQL 性能下降原因查询语句写的不好索引失效关联查询太多 join服务器调优及各个参数设置1.3、SQL 加载顺序 手写 SQL 的顺序 ≠ 机读的 SQL ...原创 2019-12-24 18:34:52 · 1422 阅读 · 0 评论 -
MySQL 基准测试
数据库优化 学习笔记一、什么是基准测试 基准测试是一种测量和评估软件性能指标的活动用于建立某个时刻的性能基准,以便当系统发生软硬件变化时重新进行基准测试以评估变化对性能的影响。 基准测试是针对系统设置的一种压力测试。1.1、基准测试特点直接、简单、易于比较,用于评估服务器...原创 2019-12-24 10:20:07 · 152 阅读 · 0 评论 -
Memory 存储引擎(了解)
数据库优化 学习笔记一、MySQL引擎 之 Memory 也称 HEAP 存储引擎,所以数据保存在内存中,如果 MySQL 服务重启数据会丢失,但是表结构会保存下来。功能特点支持 HASH 索引和 BTree 索引所有字段都为固定长度 varchar(10)=char(10)不支持 BLOB 和 TEXT 等大字段,因为它的...原创 2019-12-23 19:49:16 · 1140 阅读 · 0 评论 -
CSV 存储引擎(了解)
数据库优化 学习笔记一、MySQL引擎 之 CSV1.1、文件系统存储特点数据以文本方式存储在文件中.CSV 文件存储 表内容.CSM 文件存储 表的元数据 ,如表状态和数据量.frm 文件存储表结构信息1.2、CSV 存储引擎特点以 CSV 格式进行数据存储不支持自增(创建表时,不能设置自增)不支持索引(由于创建表时主键会自动添加索引,所以也不能设置主键...原创 2019-12-23 15:20:49 · 888 阅读 · 0 评论 -
InnoDB 存储引擎
数据库优化 学习笔记一、MySQL引擎 之 InnoDBMySQL5.5 及之后版本默认存储引擎,支持事务的ACID特性1.1、表空间 Innodb 使用表空间进行数据存储。 -- 查看表的空间类型 show variables like 'innodb_file_per_table'; -- 修改表的类型 -- on...原创 2019-12-23 14:56:01 · 62 阅读 · 0 评论 -
MyISAM 存储引擎
数据库优化 学习笔记一、MySQL引擎 之 MyISAMMySQL5.5 之前的版本默认存储引擎MyISAM存储引擎表由 frm(表结构文件)、MYD(数据文件) 和 MYI(索引文件)组成1.1、什么是锁锁主要作用是管理共享资源的并发访问锁用于实现事务的隔离性1.2、锁的类型共享锁: 也称 “度锁”,针对同一份数据,多个读操作可以同时进行而不会互相影响...原创 2019-12-23 13:58:33 · 120 阅读 · 0 评论 -
MySQL 体系结构
数据库优化 学习笔记一、MySQL 体系结构 MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。分层结构1.1、网络层 &nbs...原创 2019-12-23 10:28:42 · 156 阅读 · 0 评论 -
MySQL 账户管理(了解)
数据库优化 学习笔记一、账户管理在生产环境下操作数据库时,绝对不可以使用 root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的 crud.MySQL账户体系:根据账户所具有的权限的不同,MySQL的账户可以分为以下几:服务实例级账号:,启动了一个mysqld,即为一个数据库实例;如果某用户如root,拥有服务实例级分配的权限...原创 2019-12-22 19:58:38 · 259 阅读 · 0 评论 -
MySQL 索引
数据库优化 学习笔记一、索引的简介1.1、什么是索引 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。 更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。1.2、索引的出现 &...原创 2019-12-22 19:12:32 · 110 阅读 · 0 评论 -
MySQL 事务
数据库优化 学习笔记一、事务的简介1.1、什么是事务 所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如:银行转帐工作: 从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行。 所以,应该把他们看成一个事务。 事务是数据库维护数据一致性的单位,在每个事务结束时...原创 2019-12-22 17:02:35 · 69 阅读 · 0 评论 -
MySQL 视图
数据库优化 学习笔记一、视图简介1.1、什么时视图通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。视图是对若干张基本表的引用,是一张虚表,是查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性;1.2、视图的出现...原创 2019-12-22 15:33:29 · 103 阅读 · 0 评论 -
MySQL 与 Python 交互
数据库优化 学习笔记一、数据准备1.1、创建数据表 -- 创建 "京东" 数据库 create database jd charset=utf8; -- 使用 "京东" 数据库 use jd; -- 创建一个商品goods数据表 create table goods( id int unsigned primary key auto_increment not ...原创 2019-12-06 18:17:18 · 118 阅读 · 0 评论 -
MySQL 自关联 & 外键
数据库优化 学习笔记在开始之前,先导入数据。导入时,注意修改 sql 文件中的数据库。一、自关联 简单来说,自关联就是表与表自身进行比较查询,即 表A inner join 表A on...1.1、不用自关联 假设有三组数据(省,市,区),想要实现由省查市、由市查区,那么一...原创 2019-12-06 14:21:44 · 2453 阅读 · 0 评论 -
MySQL 连接查询 & 子查询
数据库优化 学习笔记一、连接查询1.1、inner join … on内连接查询: 查询的结果为两个表匹配到的数据语法: select ... from 表A inner join 表B on AB表连接的条件;,其中 inner 可以省略 -- 不加连接条件, 则 A 表的每一条记录都对应 B 表的每一条记录输出 select * from students inner jo...原创 2019-12-03 20:18:20 · 158 阅读 · 0 评论 -
MySQL 分组 、排序 & 分页
数据库优化 学习笔记一、分组查找1.1、group by语法: select ...(显示的字段) from 表名 group by ...(用来进行分组的字段);注意: 显示的字段,和用来进行分组的字段一般是相同的;若是不同(如 name),则当组内不止一条记录时,只会显示第一条记录的数据(只显示组内第一条记录的 name) select name from students ...原创 2019-12-03 18:30:04 · 942 阅读 · 0 评论 -
MySQL 条件查询 & 聚合函数
数据库优化 学习笔记一、条件查询 where1.1、比较运算符(>,<,=,<=,>=) -- > -- 查询 大于18岁 的信息 select * from students where age > 18; -- < -- 查询小于18岁的信息 select * from students where age < 18; ...原创 2019-11-30 14:37:10 · 458 阅读 · 0 评论 -
MySQL 增删改查(CURD)
数据库优化 学习笔记一、增加数据连接数据库,并创建 students 表和 classes 表 -- 创建students表(id、name、age、high、gender、cls_id) create table students( id int not null primary key auto_increment, name var...原创 2019-11-28 21:35:03 · 139 阅读 · 0 评论 -
数据库 & 数据表的操作
数据库优化 学习笔记一、数据库的操作1.1、数据类型原创 2019-11-28 21:12:32 · 140 阅读 · 0 评论 -
数据完整性 & SQL 语句
数据库优化 学习笔记一、数据完整性在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证。主要包括数据字段的类型、约束。1.1、数据类型(1)常用数据类型:整数(int):不需要限定长度小数(decimal):两个参数,decimal(5 , 2) 表示数值为 5 位数,其中有 2 位小数字符串char :固定长度,当传入数...原创 2019-11-28 16:23:40 · 902 阅读 · 0 评论 -
初识数据库 & MySQL 安装与配置
数据库优化 学习笔记一、数据的存储1.1、以前的存储方法: 结绳、甲骨文、穿孔卡片等等 缺点: 不易保存 、备份困难 、查找不方便 、占用空间大1.2、现代数据库出现前的存储方法: 文件存储(如 Excel 表) 缺点: 若数据量大不好满足且性能差 、不易扩展1.3、数据...原创 2019-11-27 19:45:31 · 441 阅读 · 0 评论