• mysql 数据库方面的知识


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

    https://www.cnblogs.com/rxbook/p/10786751.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

  • 相关阅读:
    OO第二单元总结-上上下下的快乐
    OO第一单元总结
    OO第四单元博客作业
    OO第三单元博客作业
    OO第二单元博客作业
    OO第一次博客作业
    Python Selenium实现浏览器自动化操作
    Python命名规范
    OO_UNIT4 & OO_2020 SUMMARY
    OO_UINT3_2020
  • 原文地址:https://www.cnblogs.com/-Aiai/p/15215497.html
Copyright © 2020-2023  润新知