![](https://img-blog.csdnimg.cn/20201114155113721.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库
文章平均质量分 88
数据库
DAIHAO丶
一花一世界,一树一菩提。
展开
-
SQL server 使用优化脚本
SQL server 使用优化脚本原创 2023-03-07 18:28:30 · 776 阅读 · 1 评论 -
MySQL数据库优化
MySQL数据库优化一般有这几个方面* 减少数据访问:设置合理的字段类型,启用压缩,通过索引访问等减少磁盘`IO`* 返回更少的数据:只返回所需字段和数据分页处理,减少磁盘`IO`和网络`IO`* 减少交互次数:批量`DML`操作,函数存储等减少数据连接次数* 减少服务器`CPU`开销:尽量减少数据库排序操作已经全表查询,减少`CPU`内存占用* 利用更多资源:使用表分区,可以增加并行操作,更大限度利用`CPU`资源原创 2022-11-03 10:09:57 · 219 阅读 · 0 评论 -
MySQL的日志
redo log是InnoDB引擎特有的日志WAL技术:当有一条记录需要更新的时候,InnoDB引擎就会先把记录写到redo log里面,并更新内存,这个时候更新就算完成了。同时,InnoDB引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做。InnoDB的redo log是固定大小的,比如可以配置为一组4个文件,每个文件的大小是1GB,那么总共就可以记录4GB的操作。从头开始写,写到末尾就又回到开头循环写,如下面这个图所示。write pos。...原创 2022-08-05 17:02:06 · 374 阅读 · 0 评论 -
MySQL函数count
不同的 引擎中,有不同的实现方式。为什么 不跟 一样,也把数字存起来呢?因为即使是在同一个时刻的多个查询,由于多版本并发控制()的原因,表“应该返回多少行”也是不确定的。事务默认的隔离级别是可重复读,在代码上就是通过多版本并发控制,也就是 来实现的。每一行记录都要判断自己是否对这个会话可见,因此对于请求来说,只好把数据一行一行地读出依次判断,可见的行才能够用于计算“基于这个查询”的表的总行数。InnoDB在执行 count(*) 操作的优化是索引组织表,主键索引树的叶子节点是数据,而普通索引树的叶子节点原创 2022-06-30 16:43:01 · 131 阅读 · 0 评论 -
MySQL刷脏页
在处理更新语句的时候,只做了写日志这一个磁盘操作。这个日志叫作 (重做日志),在更新内存写完 后,就返回给客户端,本次更新成功。内存里的数据写入磁盘的过程,术语就是 。当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页” 。1、的 写满了。这时候系统会停止所有更新操作,把 往前推进,留出空间可以继续写。2、系统内存不足。当需要新的内存页,而内存不够用的时候,就要淘汰一些数据页,空出内存给别的数据页使用。如果淘汰的是“脏原创 2022-06-30 14:57:46 · 848 阅读 · 0 评论 -
MySQL锁
全局锁就是对整个数据库实例加锁。提供了一个加全局读锁的方法,命令是。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。全局锁的典型使用场景是,做全库逻辑备份。也就是把整库每个表都 出来存成文本。在备份过程中整个库完全处于只读状态。官方自带的逻辑备份工具是 。当 使用参数的时候,导数据之前就会启动一个事务,来确保拿到一致性视图。而由于 的支持,这个过程中数据是可以正常更新的。你一定在原创 2022-06-29 11:09:50 · 98 阅读 · 0 评论 -
MySQl索引
哈希表是一种以键 - 值()存储数据的结构,我们只要输入待查找的值即 ,就可以找到其对应的值即 。哈希的思路很简单,把值放在数组里,用一个哈希函数把 换算成一个确定的位置,然后把 放在数组的这个位置。哈希表这种结构适用于只有等值查询的场景 ,比如 及其他一些 引擎。有序数组在等值查询和范围查询场景中的性能就都非常优秀,但是,在需要更新数据的时候就麻烦了,你往中间插入一个记录就必须得挪动后面所有的记录,成本太高。所以, 有序数组索引只适用于静态存储引擎 ,比如你要保存的是 2017 年某个城市的所有人口信息,原创 2022-06-28 18:19:46 · 239 阅读 · 0 评论 -
一条SQL更新语句被执行
更新流程涉及两个重要的日志模块:日志和 日志 是 引擎特有的日志 技术 :当有一条记录需要更新的时候, 引擎就会先把记录写到 里面,并更新内存,这个时候更新就算完成了。同时, 引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做。 的 是固定大小的,比如可以配置为一组 个文件,每个文件的大小是 ,那么总共就可以记录 的操作。从头开始写,写到末尾就又回到开头循环写,如下面这个图所示。 是当前记录的位置,一边写一边后移,写到第 号文件末尾后就回到 号文件开头。原创 2022-06-14 10:46:34 · 171 阅读 · 0 评论 -
SQL Server碎片整理
(越小越好)索引的逻辑碎片,或 分配单元中堆的区碎片。此值按百分比计算,并将考虑多个文件。0 表示 和 分配单元。如果是堆表且模式为 时,为 。如果碎片小于,碎片不太可能会成为问题,如果索引碎片在,碎片可能成为问题,但是可以通过索引重组来消除索引解决,大规模的碎片(当碎片大于),可能要求索引重建。所有页中使用的可用数据存储空间的平均百分比。对于索引,平均百分比应用于 分配单元中 的当前级别。对于堆,表示 分配单元中所有数据页的平均百分比。对于 或 分配单元,表示该分配单元中所有页的平均百原创 2022-06-02 14:13:22 · 1718 阅读 · 1 评论 -
MySQL碎片整理
MySQL碎片MySQL 碎片就是 MySQL 数据文件中一些不连续的空白空间,这些空间无法再被全部利用,久而久之越来多,越来越零碎,从而造成物理存储和逻辑存储的位置顺序不一致,这就是碎片。碎片的产生delete 操作在 MySQL 中删除数据,在存储中就会产生空白的空间,当有新数据插入时,MySQL 会试着在这些空白空间中保存新数据,但是呢总是用不满这些空白空间。所以日积月累,亦或是一下有大量的 delete 操作,一下就会有大量的空白空间,慢慢的会大到比表的数据使用的空间还大。updat原创 2022-05-26 17:51:11 · 1639 阅读 · 0 评论 -
SQL Server 详记
T-SQL查询进阶–理解SQL Server中索引的概念,原理以及其他sqlserver索引小结如何让你的SQL运行得更快数据库性能优化一:数据库自身优化(大数据量)原创 2021-08-03 07:05:54 · 119 阅读 · 0 评论 -
Mysql详记
引擎事务学不会的数据库事务请简述常用的索引有哪些种类?普通索引: 即针对数据库表创建索引唯一索引: 与普通索引类似,不同的就是:MySQL 数据库索引列的值必须唯一,但允许有空值主键索引: 它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引组合索引: 为了进一步榨取MySQL 的效率,就要考虑建立组合索引。即将数据库表中的多个字段联合起来作为一个组合索引。...原创 2021-08-03 06:59:41 · 168 阅读 · 0 评论 -
MySQL复习笔记
第一章 数据库概述1.1 数据库概述DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,例如建立、使用和维护数据库。DB:数据库(Database)SQL:结构化查询语言,(Structure Query Language),专门用来操作/访问数据库的通用语言。MySQL:其中的一款关系型数据库管理系统以下是2021年DB-Engines Ranking 对各数据库受欢迎程度进行调查后的统计结果:(查看数据库最新排名:https://转载 2021-07-31 15:30:54 · 1040 阅读 · 0 评论 -
数据库杂乱记
概述SQL(Structural query language)语句分三种类型:DML(Data Manipulation Language) 数据操纵语言DDL(Data Definition Language) 数据定义语言DCL(Data Control Language) 数据控制语言DMLDML用于查询与修改数据记录。包括以下语句:INSERT: 添加数据到数据库中UPDATE: 修改数据库中的数据DELETE: 删除数据库中的数据SELECT: 选择(查询)数据D原创 2021-07-18 15:03:13 · 235 阅读 · 0 评论 -
数据库学习-视图、触发器、存储过程
数据视图复用性:数据库中关于数据的查询有时候非常复杂,例如表连接,子查询等,这种查询会让程序员感到非常痛苦,因为它逻辑复杂,编写语句较多,这种查询需要重复使用时,则不会次次都能编写成功,从而降低了数据库的实用性。安全性:在操作表时,有时候只要求程序员只能操作部分字段,而不是全部字段。比如在公司,工资一般是保密的,如果因为程序员一时疏忽多写入一个”工资“字段,则会让员工的工资显示给所有人,这就需要限制程序员操作的字段。所以为了提高复杂SQL语句的复用性和安全性,则可以使用视图。视图:本质上是一种虚原创 2021-04-05 17:08:10 · 1161 阅读 · 0 评论 -
读SQL Server性能调优实战——陈畅亮、吴一晴著
sqlserver 微软安装根据业务特点来考虑1、分析产品业务数据的增长量 雨果某些关键业务数据在一定时间内的增长量,预估数据在未来的增长数据,2、了解产品业务操作类型。考虑业务是以查询为主还是以更新为主。从而选择多大的内存。SQL server配置1、服务端的SQL server配置管理器(SQL server Configuration Management )2、客户端的SQL server Management Studio数据库连接安全性三种方式的连接协议1、 共享内存2、命原创 2021-04-04 20:00:15 · 1519 阅读 · 0 评论 -
sql优化
sql优化1.查询的模糊匹配尽量避免在一个复杂查询里面使用LIKE '%parm1%'左边的百分号会导致相关列的索引无法使,请注意使用。改进方法:a、修改前台程序——把查询条件的供应商名称一栏由原来的文本输入改为下拉列表,用户模糊输入供应商名称时,直接在前台就帮忙定位到具体的供应商,这样在调用后台程序时,这列就可以直接用等于来关联了。b、直接修改后台——根据输入条件,先查出符合条件的供应商,并把相关记录保存在一个临时表里头,然后再用临时表去做复杂关联2.索引问题开发初期,由于表记录很少,索引创原创 2021-03-20 14:16:55 · 126 阅读 · 2 评论 -
一条SQL查询语句被执行
在Java系统和 MySQL 进行交互之前,MySQL 驱动会帮我们建立好连接,然后我们只需要发送 SQL 语句就可以执行 CRUD 了。一次 SQL 请求就会建立一个连接,多个请求就会建立多个连接。Java 系统在通过 MySQL 驱动和 MySQL 数据库连接的时候是基于 TCP/IP 协议的,所以如果每个请求都是新建连接和销毁连接,那这样势必会造成不必要的浪费和性能的下降。使用数据库连接池可解决此问题。数据库连接池 维护一定的连接数,方便系统获取连接,使用就去池子中获取,用完放回去就可以了原创 2021-01-22 11:17:43 · 789 阅读 · 3 评论 -
JDBC:Java Data Base Connectivuty
JDBC概述在Java中,数据库存取技术可分为如下几类:1、JDBC直接访问数据库2、JDO技术(Java Data Object)3、 第三方O/R工具,如Hibernate, Mybatis等JDBC是Java访问数据库的基石,JDO,Hibernate等只是更好的封装了JDBC。什么是JDBCJDBC全称为:Java Data Base Connectivuty,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。为什么要使用原创 2020-12-28 13:56:08 · 225 阅读 · 0 评论 -
Mysql数据库InnoDB索引
InnoDB记录存储结构一文搞懂InnoDB索引存储结构总结对于InnoDB存储引擎来说,在单个页中查找某条记录分为两种情况:以主键为搜索条件,可以使用Page Directory通过二分法快速定位相应的用户记录。以其他列为搜索条件,需要按照记录组成的单链表依次遍历各条记录。没有索引的情况下,不论是以主键还是其他列作为搜索条件,只能沿着页的双链表从左到右依次遍历各个页。InnoDB存储引擎的索引是一棵B+树,完整的用户记录都存储在B+树第0层的叶子节点,其他层次的节点都属于内节原创 2020-12-09 17:22:44 · 100 阅读 · 0 评论 -
SQL Server中时间戳转换为日期格式
通常实际项目,日期都会以bitint形式的时间戳来存入数据库,阅读性不好,需在存入和取出作换算,今天使用到在sql server中将时间戳转为日期格式输出。mysql中可以使用这两个函数来换算,但是sql server中不支持将日期格式转成时间戳SELECT UNIX_TIMESTAMP(NOW());将时间戳转成日期格式SELECT FROM_UNIXTIME(1493016148);sql server中需要使用DATEADD()函数DATEADD()函数在日期中添加或减去指原创 2020-07-18 18:09:17 · 12288 阅读 · 0 评论 -
学不会的数据库事务
事务( ,简写为 ),由一步或几步数据库操作( 语句)序列组成的逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行(一组原子性的 査询)原子性(Atomicity):一致性(Consistency):隔离性(Isolation):持久性(Durability): 事务的 是通过 日志和锁来保证:事务的隔离性是通过数据库锁的机制实现的,原子性和持久性通过 来实现,一致性通过 来实现。在修改表的数据时,先需要修改其内存拷贝,再把该修改行为记录到重做日志 中,在事务结束后将重做日志写入磁盘,并通知文件系原创 2020-07-09 19:13:36 · 228 阅读 · 0 评论