存储引擎

hibernate中dialect的讲解

*爱你&永不变心* 提交于 2019-12-31 07:45:40
RDBMS方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect.DB2400Dialect DB2 OS390 org.hibernate.dialect.DB2390Dialect PostgreSQL org.hibernate.dialect.PostgreSQLDialect MySQL org.hibernate.dialect.MySQLDialect MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect MySQL with MyISAM org.hibernate.dialect.MySQLMyISAMDialect Oracle (any version) org.hibernate.dialect.OracleDialect Oracle 9i/10g org.hibernate.dialect.Oracle9Dialect Sybase org.hibernate.dialect.SybaseDialect Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect Microsoft SQL Server org.hibernate

MySQL入门(三)

十年热恋 提交于 2019-12-30 00:13:20
1. MySQL 优化 - 查看执行记录 MySQL 提供了一个 EXPLAIN 命令 , 它可以 对 SELECT 语句进行分析 , 并输出 SELECT 执行的详细信息 , 以供开发人员针对性优化。 使用 explain 这个命令来查看一个这些 SQL 语句的执行计划,查看该 SQL 语句有没有使用上了索引,有没有做全表扫描,这都可以通过 explain 命令来查看。 EXPLAIN 命令用法十分简单 , 在 SELECT 语句前加上 explain 就可以了 , 例如 : 1.1 SQL 语句优化 -explain 分析问题 expain 出来的信息有 10 列,分别是 id 、 select_type 、 table 、 type 、 possible_keys 、 key 、 key_len 、 ref 、 rows 、 Extra , 下面对这些字段进行解释: id: select 查询的标识符 . 每个 select 都会自动分配一个唯一的标识符 . select_type: 表示查询的类型。 table: 输出结果集的表 type: 表示表的连接类型 possible_keys: 表示查询时,可能使用的索引 key: 表示实际使用的索引 key_len: 索引字段的长度 ref: 哪个字段或常数与 key 一起被使用 rows: 扫描出的行数 ( 估算的行数 )

MongoDB如何释放空闲空间?

巧了我就是萌 提交于 2019-12-29 08:09:47
当我们从MongoDB中删除文档或集合时,MongoDB并不会将已经占用了的磁盘空间释放,它会一直维护已经占用了磁盘空间的数据文件,尽管数据文件中可能存在大大小小的空记录列表(empty record list)。当客户端程序再次插入文档时,MongoDB会从空记录列表中分配存储空间给新文档。那么为了更加有效的使用磁盘空间,我们需要对mongodb的数据文件做碎片整理以及未使用空间的回收。思想无非两种: 1、对原数据进行重组 2、仅将数据复制出来,形成仅数据的完整备份 以下介绍几种常用的实施方法: 1、compact 2、db.repairDatabase() 3、secondary节点重同步 2、db.copyDatabase() 一、 compat 官网对该命令的定义:对集合中的所有数据和索引进行重写和碎片整理。 使用方法 use yourdatabase; db.runCommand({ compact : 'yourCollection' }); 注意事项 1、在执行命令前请保证你有比较新的备份 2、在使用MMAPv1存储引擎的MongoDB上compact需要数据文件所在分区至少有2G的空闲空间 3、在使用WiredTiger存储引擎的MongoDB上,compact命令将重写集合和索引,且释放未使用的空间,但使用MMAPv1存储引擎的MongoDB上

MySQL系列 | 逻辑架构

天涯浪子 提交于 2019-12-28 09:32:46
MySQL逻辑架构 MySQL作为一个大型的网络程序、数据管理系统,架构非常复杂。下图大致画出了其逻辑架构。 Connectors   MySQL首先是一个网络程序,其在TCP之上定义了自己的 应用层协议 。所以要使用MySQL,我们可以编写代码,跟MySQL Server建立TCP连接,之后按照其定义好的协议进行交互。当然这样比较麻烦,比较方便的办法是调用SDK,比如Native C API、JDBC、PHP等各语言MySQL Connector,或者通过ODBC。但通过SDK来访问MySQL,本质上还是在TCP连接上通过MySQL协议跟MySQL进行交互。 Connection Management   每一个基于TCP的网络服务都需要管理客户端链接,MySQL也不例外。MySQL会为每一个连接绑定一个线程,之后这个连接上的所有查询都在这个线程中执行。为了避免频繁创建和销毁线程带来开销,MySQL通常会缓存线程或者使用线程池,从而避免频繁的创建和销毁线程。 客户端连接到MySQL后,在使用MySQL的功能之前,需要进行认证,认证基于用户名、主机名、密码。如果用了SSL或者TLS的方式进行连接,还会进行证书认证。 SQL Interface   MySQL支持DML(数据操作语言)、DDL(数据定义语言)、存储过程、视图、触发器、自定义函数等多种SQL语言接口。 Parser  

MySQL入门(二)

故事扮演 提交于 2019-12-27 23:44:18
1. MySQL 架构 1.1 逻辑架构图 1.1.1 Connection Pool: 连接池 * 管理缓冲 用户连接 , 线程处理 等需要缓存的需求。 * 负责监听对 MySQL Server 的各种请求,接收连接请求,转发所有连接请求到 线程管理模块 。每一个连接上 MySQL Server 的客户端请求都会被分配(或创建)一个连接线程为其单独服务。 * 而 连接线程 的主要工作就是负责 MySQL Server 与客户端的通信,接受客户端的命令请求,传递 Server 端的结果信息等。线程管理模块则负责管理维护这些连接线程。包括线程的创建,线程的 cache 等。 1.1.2 Parser: 解析器 * SQL 命令传递到解析器的时候会被解析器 验证和解析 。 主要功能: a . 将 SQL 语句进行 语义和语法的分析,分解成数据结构 ,然后按照 不同的操作类型进行分类, 然后做出针对性的转发到后续步骤,以后 SQL 语句的传递和处理就是基于这个结构的。 b. 如果在分解构成中遇到错误,那么就说明这个 sql 语句是不合理的 1.1.3 Optimizer: 查询优化器 * SQL 语句在查询之前会 使用查询优化器对查询进行优化 。 * 它使用的是“ 选取 - 投影 - 联接 ”策略进行查询。 用一个例子就可以理解: select uid,name from user

RocksDB存储引擎测试

徘徊边缘 提交于 2019-12-26 12:02:34
一:安装搭建(两个节点都要安装) 1 yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm 2 3 percona-release-1.0-11.noarch 4 5 yum update percona-release 6 7 yum install Percona-Server-rocksdb-57.x86_64 8 9 service mysqld start 10 11 cat /var/log/mysqld.log | grep "A temporary password" | awk -F " " '{print$11}' 12 13 mysql -uroot -p 14 15 alter user 'root'@'localhost' identified by 'rooT_258'; View Code 二:my.cnf配置(两个节点都要安装) 1 server-id = 189 2 3 #Binary Logging. 4 log-bin=mysql-bin 5 binlog-format=row 6 7 #Gtid Mode 8 gtid-mode=ON 9 enforce-gtid

mysql存储引擎

独自空忆成欢 提交于 2019-12-26 10:46:35
数据库存储引擎 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据 。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。 因为在关系数据库中数据的存储是以表的形式存储的,所以 存储引擎也可以称为表类型(Table Type,即存储和操作此表的类型)。 如创建一个InnoDB类型的表: CREATE TABLE `brand` ( `id` int(11) NOT NULL AUTO_INCREMENT, `brand_name` varchar(64) NOT NULL, `brand_logo` varchar(255) NOT NULL, `description` varchar(255) NOT NULL, `parent_id` int(11) NOT NULL, `layer` int(11) NOT NULL DEFAULT '0', `enabled` int(11) NOT NULL DEFAULT '0', `path` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `brand_name` (`brand_name`) )

mysql存储引擎概述

半腔热情 提交于 2019-12-26 04:09:19
存储引擎分类: Innodb MySql 5.6 版本默认的存储引擎。 支持事务,行级锁,支持外键。 它具备提交、回滚以及崩溃恢复的功能以保护用户数据。 myisam 既不支持事务,也不支持外键,也不支持行级锁。 适用于只读或者以读为主的的场景。 memory 访问数据非常快。 在内存中存储所有数据,应用于对非关键数据快速查找的场景。 数据是存放在内存中的,默认使用hash索引,服务关闭数据就会丢失。 BLACKHOLE 黑洞存储引擎,类似于 Unix 的 /dev/null,Archive 只接收但却并不保存数据。对这种引擎的表的查询常常返回一个空集。这种表可以应用于 DML 语句需要发送到从服务器,但主服务器并不会保留这种数据的备份的主从配置中。 CSV 它的表真的是以逗号分隔的文本文件。CSV 表允许你以 CSV 格式导入导出数据,以相同的读和写的格式和脚本和应用交互数据。由于 CSV 表没有索引,你最好是在普通操作中将数据放在 InnoDB 表里,只有在导入或导出阶段使用一下 CSV 表。 NDB (又名 NDBCLUSTER)——这种集群数据引擎尤其适合于需要最高程度的正常运行时间和可用性的应用。注意:NDB 存储引擎在标准 MySql 5.6 版本里并不被支持。目前能够支持 MySql 集群的版本有:基于 MySql 5.1 的 MySQL Cluster NDB 7

数据库两个神器【索引和锁】

随声附和 提交于 2019-12-25 07:01:15
前言 只有光头才能变强 索引和锁 在数据库中可以说是非常重要的知识点了,在面试中也会经常会被问到的。 本文 力求简单讲清每个知识点 ,希望大家看完能有所收获 声明:如果没有说明具体的数据库和存储引擎, 默认指的是MySQL中的InnoDB存储引擎 一、索引 在之前,我对索引有以下的认知: 索引可以加快数据库的检索速度 表 经常 进行 INSERT/UPDATE/DELETE 操作就不要建立索引了,换言之: 索引会降低 插入、删除、修改等维护任务的速度。 索引需要 占物理和数据空间 。 了解过索引的最左匹配原则 知道索引的分类:聚集索引和非聚集索引 Mysql支持Hash索引和B+树索引两种 看起来好像啥都知道,但面试让你说的时候可能就GG了: 使用索引为什么可以加快数据库的检索速度啊? 为什么说索引会降低插入、删除、修改等维护任务的速度。 索引的最左匹配原则指的是什么? Hash索引和B+树索引有什么区别?主流的使用哪一个比较多?InnoDB存储都支持吗? 聚集索引和非聚集索引有什么区别? ........ 1.1聊聊索引的基础知识 首先Mysql的基本存储结构是 页 (记录都存在页里边): 各个数据页 可以组成一个 双向链表 而 每个数据页中的记录 又可以组成一个 单向 链表 每个数据页都会为存储在它里边儿的记录生成一个 页目录 ,在通过 主键

Python day 44 :数据库的存储引擎/索引/权限管理

感情迁移 提交于 2019-12-20 10:18:14
## 存储引擎 ```python 分类: Innodb: 1,默认版本5.5及以上 2,支持事务 3,不支持全文索引(MySQL 5.6 及以后的版本,MyISAM 和 InnoDB 存储引擎均支持全文索引;) 4,索引和数据都是在同一个文件中: .ibd 表的结构在.frm文件中 MyIsam: 1,默认版本在5.5以下 2,不支持事务 3,支持全文索引 4,表结构:.frm 表数据:.MYD 表索引:.MYI 全文所以插件:sphinx. ``` ## 索引 ```python 作用: 加快查询的速度 类比: 新华字典的目录, 可以将索引理解成一个特殊的文件, 然后如果没有这个文件的话, 查询是从前到后查找数据的,如果有这个文件的话, 会按照一种特殊的数据结构(二叉树)查找数据 分类: 主键索引: 加快查询 + 不能重复 + 不能为空 primary key 唯一索引: 加快查询 + 不能重复 unique(列名) 联合唯一索引: 加快查询 + 不能重复 unique(列名1,列名2) 普通索引: 加快查询 index('列名') 主键索引创建: 第一种:create table ti(id int auto_increment primary key,name varchar(32) not null default "")engine=Innodb charse=utf8