mysql 数据库方面的知识

时间:2021-09-01
本文章向大家介绍mysql 数据库方面的知识,主要包括mysql 数据库方面的知识使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

https://www.cnblogs.com/sharpest/p/10390035.html

存储引擎 :存储引擎是一种用来存储MySQL中对象(记录和索引)的一种特定的结构(文件结构),处于MySQL服务器的最底层,直接存储数据。导致上层的操作,依赖于存储引擎的选择。

InnoDB ==> 5.5  默认的存储引擎  、  事务安全型存储引擎 、MySQL推荐使用的存储引擎。支持事务,行级锁定,外键约束  

  假如创建一个test 数据库   ,新建一张student表,选择存储引擎为innodb     会在mysqlserver 、data 文件夹下面的test目录生成三个文件   

  db.opt  :       存放了数据库的配置信息,比如数据库的字符集还有编码格式

  student.frm: 是表结构文件,仅存储了表的结构、元数据(meta),包括表结构定义信息等

  student.idb:  是表索引文件,包括了单独一个表的数据及索引内容。

  如果往表里插入了新的数据,则在mysql的data目录下会生成ibdata1文件,这个文件是存储了所有innodb表的数据。


使用innodb引擎时,需要理解独立表空间、共享表空间。

独立表空间: 个表都会生成以独立的文件方式来存储,每个表都一个.frm的描述文件,还有一个.ibd文件

        每个表都有自己独立的表空间;每个表的数据和索引都会存储在各个独立的表空间中;可以实现单表在不同的数据进行迁移;

共享表空间: 可以将表空间分成多个文件存放在各个磁盘上 ,数据和文件放在一起方便管理

innodb_file_per_table=1 为使用独占表空间

innodb_file_per_table=0 为使用共享表空间

innodb_data_home_dir 代表为数据库文件所存放的目录

innodb_log_group_home_dir 为日志存放目录

innodb_file_per_table 是否使用共享以及独占表空间来

innodb_data_file_path=ibdata1:10M:autoextend(可扩展大小的尺寸为10MB的单独文件,名为ibdata1)

1、数据按照主键顺序存储:插入时做排序工作,效率低。

      事务、外键约束 : 都是为了维护数据的完整性。

innodb擅长处理并发的     row-level locking,实现了行级锁定,在一定情况下,可以选择行级锁来提升并发性。

总结:innodb擅长事务、数据的完整性及高并发处理,不擅长快速插入(插入前要排序,消耗时间)和检索。


MyISAM存储引擎介绍

MySQL<= 5.5 MySQL默认的存储引擎。

ISAM:Indexed Sequential Access Method(索引顺序存取方法)的缩写,是一种文件系统。

擅长与处理,高速读与写。

数据和索引分别存储于不同的文件中。

frm/  结构

myd/ 数据

myi/ 索引

(3)功能

a.全文索引支持。(mysql>=5.6时innodb 也支持)

b.数据的压缩存储。.MYD文件的压缩存储。

进行压缩:使用工具 myisamPack完成压缩功能:该工具mysql自带


 慢查询日志的使用

show variables like "%slow_query%" 查詢是否開啓  慢查询 、慢查询日志输出层log

show variables like "%long_query%" 查询慢查询的临界值

开启日志

set global slow_query_log=1;

设置临界值

set long_query_time=0.5; (超过这个时间 输出到慢查询日志层)


 分区分表

分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。

分区,partition,分区是将数据分段划分在多个位置存放,可以是同一块磁盘也可以在不同的机器。分区后,表面上还是一张表,但数据散列到多个位置了。

app读写的时候操作的还是大表名字,db自动去组织分区的数据。

Tip:分区与存储引擎无关,是MySQL逻辑层完成的。

MySQL提供4种分区算法:取余:Key,hash 条件:List,range 。

垂直分表

一张表中存在多个字段。这些字段可以分为常用字段和非常用字段,为了提高查表速度,我们可以把这两类字段分开来存储。主要目的,减少每条记录的长度。


服务器架构介绍

服务器架构,不仅仅是用一台MySQL

原文地址:https://www.cnblogs.com/-Aiai/p/15215497.html