首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MYSQL 数据库结构优化

数据库结构优化 优化数据大小 使表占用尽量少的磁盘空间。减少磁盘I/O次数及读取数据量是提升性能的基础原则。表越小,数据读写处理时则需要更少的内存,同时,小表的索引占用也相对小,索引处理也更加快速。...如果主要的负载在缓存命中率及磁盘读写速度,那么这种格式将能够提升数据库反应速度。如果是极端情况负载受限于CPU性能,那么使用这种格式则会降低数据库性能。...对于InnoDB 类型表,主键列博阿含在二级索引中,所以对于具有较多二级索引的数据库结构,较短的主键能够节省相当的存储空间。 不要创建不必要的索引。索引能够加快查询,但是会影响插入和更新操作。...同一个数据库中表过多的缺点 如果数据库中MyISAM 表过多,打开,关闭和创建表操作会变得很慢,当执行多表查询时,可能会发生表缓存溢出。...相反,只会保留临时表创建的数据结构,用于执行结果类型转换。表没有完全的实例化,没有行写入,也没行读取,查询的数据行直接返回到客户端。查询结果减少了内存和磁盘需求,及相应延迟。

7.5K51

MySQL数据库:表结构优化

数据库操作中最为耗时的操作就是 IO 处理,大部分数据库操作 90% 以上的时间都花在了 IO 读写上面。所以减少 IO 次数可以在很大程度上提高数据库操作的性能。...由于MySQL数据库是基于行存储的数据库,而数据库IO操作的时候是以 page 的方式,也就是说,如果我们每行记录所占用的空间量减小,就会使每个 page 中可存放的数据行数增大,那么每次 IO 可访问的行数也就增多了...我们无法改变数据库中需要存储的数据,但是我们可以在数据的存储方式方面做一些优化。 一、数据类型的选择: 下面关于字段类型的优化建议主要适用于记录条数较多,数据量较大的场景。...4、ENUM & SET: 对于状态字段,可以尝试使用 ENUM 来存放,因为可以极大的降低存储空间,而且即使需要增加新的类型,只要增加于末尾,修改结构也不需要重建表数据。...二、表结构设计: 上面几点的优化都是为了减少每条记录的存储空间大小,让每个数据库中能够存储更多的记录条数,以达到减少 IO 操作次数,提高缓存命中率。

7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL数据库DDL表结构操作

    前言本专栏内容将会详细讲解MySQL数据库技术。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。...什么是表表 : 数据在数据库中是以一个一个表格形式存在并且组织的。 有行, 有列。图片二. 表结构操作1....数据表的修改(ALTER)修改表语法如下:ALTER TABLE 表名 操作;2.1 向现有表中添加列在表结构已经确定后, 如果想要增加一列可以使用下面语句进行更改:#在课程表基础上添加gradeId...结语最后,我们对本文核心要点进行总结:本节中主要学习的是DDL中的表结构的操作其中创建表语句, 删除表语句比较重要。...修改表结构语句一般使用较少,因为表结构设计创建后一般很少变动, 如果变动那么项目代码也会随之变动, 这样成本太高。

    3.7K10

    MySQL数据库结构设计

    在编码过程中,如果MySQL数据结构设计不好的话,会大大影响开发人员编码效率。比如说MySQL数据库表设计不规范,创建时间字段设计成cjsj,创建者字段设计成cjr或者cjz。...这样的数据库表可读性和表意性相当差。下面我们就来讲讲如何规范设计数据库结构数据库结构优化 数据库结构优化的目的有哪些? 减少数据冗余。 尽量避免数据维护中出现更新,插入,删除异常。...解决上述异常很简单,设计数据库表时遵循数据库三大范式即可。 数据库结构设计又分为逻辑设计和物理设计。 前面说的数据库三大范式可以说是逻辑设计。逻辑设计是根据数据实体之间的逻辑关系对表进行设计。...物理设计则是根据所使用的数据库特点进行表结构设计。比如Myisam引擎不支持事务,但是支持并发插入的表级锁,主要应用于select,insert。不适合读写频繁的场景。...维护优化是指根据实际情况对索引存储结构等进行优化。 一般数据库结构设计的步骤是: 1.需求分析:全面了解产品设计的存储需求。存取需求是指数据库要存储什么样的数据,这些数据具有什么特点。

    2K30

    关系型数据库 MySQL 体系结构详解

    通过前面几篇文章学会如何安装 MySQL 以及基础知识后,我们还需要学习体系结构MySQL 和 Oracle 体系结构类似,如果学过 Oracle 可以类比记忆,基础牢固才能学好数据库,才能做一个合格的...MySQL 体系结构可分为两层,MySQL Server 层和 存储引擎层,而 MySQL Server 层又分为连接层和 SQL 层,连接层包括通信协议、线程处理、用户名密码认证,SQL 层包含权限判断...MySQL 体系结构 1、Connectors 指的是不同语言的应用程序接口(如JDBC、ODBC、Python等)与 MySQL 的连接交互层; 2、Management Serveices &Utilities...数据库数据库实例 数据库:物理操作系统文件或其他形式文件类型的集合; 数据库实例:数据库后台进程或线程及一个共享内存区域组成,数据库实例是用来操作数据库文件的; MySQL 是一个单进程多线程架构的数据库...InnoDB 是 MySQL 数据库 5.5 版本后的默认存储引擎,默认所说的 MySQL 即指 InnoDB 存储引擎的 MySQL,那么关于 InnoDB 的体系结构下一次在一起来看看吧,今日就到这里啦

    2.1K20

    Mysql实例 数据库优化--结构和性能优化

    三.数据库结构设计 当开发人员设计好表语句后,就需要运维工程师进行服务部署,项目上线。这里应该根据需求进行预估访问量,再进行配置的选择和结构设计。...项目初期访问量一般是寥寥无几,此阶段Web+数据库单台部署足以应对在1000左右的QPS(每秒查询率)。考虑到单点故障,应做到高可用性,可采用MySQL主从复制+Keepalived实现双机热备。...数据库配置优化 MySQL应用最广泛的有两种存储引擎:一个是MyISAM,不支持事务处理,读性能处理快,表级别锁。...根据这些方面看,使用InnoDB存储引擎是最好的选择,也是MySQL5.5+版本默认存储引擎。每个存储引擎相关运行参数比较多,以下列出可能影响数据库性能的参数。...具体建议 数据库使用 mysql 用户启动,权限为700 登录时在命令行暴漏密码,备份脚本中如果有密码,给设置 700,属主和用户组为 mysql或root 初始删除无用的用户,只保留 root 127.0.0.1

    2.3K20

    数据库系列 | MySQL索引数据结构算法

    1索引数据结构 索引是帮助MySQL高效获取数据的排好序的数据结构(容易忽略的点:排好序) 上图中有一张表,表名为 t ,表中有7条数据;使用 select * from t where t.clo2...字段 Col1 按照自增 如果数据是单边增长的情况 那么出现的就是和链表一样的数据结构了,树高度大。...时候,就会自动调整,这样可以解决二叉树的弊端;红黑树也叫平衡二叉树; 同样我们查找6,在二叉树中我们需要经过6个节点才能找到(1-2-3-4-5-6),红黑树中我们只需要3个节点(2-4-6),但是mysql...索引的数据结构并不是红黑树,因为如果数据量大了之后,树的高度就会很大。...若使用 select * from t where clo2 > 6,这种查找范围的SQL,那Hash就不能搞定了,就不会走索引了;而且对排序hash也没有办法; 原因2:hash会产生 hash 碰撞,MySQL

    70220

    MySQL数据库(六):体系结构和存储引擎

    一、mysql 体系结构 连接池:内存/cpu/进程数 管理工具:提供mysql数据库服务的软件自带的命令 sql接口:传递sql命令给mysqld进程 分析器:sql命令格式是否正确,对操作的库或者表是否有使用权限...优化器:优化执行的sql语句,让系统使用最少的资源去执行sql命令 写(insert create update delete) 读(select) 缓存区:在mysql数据库服务时,会划分一定系统物理内存给...3.存储引擎的分类 1.1 myisam ㈠存储方法 独享表空间,用不同的文件存储不同的数据. .frm文件存表结构 .MYD存记录 .MYI存储索引 ㈡功能 不支持外键,不支持事务,...innodb ㈠存储方法 共享表空间(Supports transactions, row-level locking, and foreign keys),用不同的文件存储不同的数据. .frm存放表结构...> show engines;  查看当前数据库服务支持的存储引擎 主要使用Innodb和Myisam 创建时指定存储引擎 create table man_all(id int,name varchar

    1.3K80

    Mysql数据目录(1)---数据库结构(二十四)

    /data/ | +---------------+------------------------+ 1 row in set (0.00 sec) 数据目录的结构mysql在运行的时候会产生哪些数据呢...当然是我们创建的数据库,表,视图,触发器,等用户数据,除了这些数据,mysql为了更好地运行,提高效率,也会有一些额外数据。...数据库在文件系统中的表示 建表先从指定数据库,那我们从创建数据库数据库在文件系统中的表示开始说起,我们在create database ‘’,发生了什么呢?...2)进入指定数据库文件,可以看到默认创建的db.opt文件,里面存放着当前数据库的规则,特征,如比较规则,字符集等。 表在文件系统中的位子 表分为两个部分:1)表结构文件。2)表数据文件。...比如我们有index_page_tb,所以在utf_8的目录下会有一个index_page_tb.frm的文件记录着当前表的结构,比如有表的行规则,字符集,每列的数据类型,索引等。

    69320

    用 PHP 函数变量数组改变代码结构

    其实原因有很多,起初为了实现功能,并没有注重代码的结构,尤其是为了完成任务的公司。虽然很多公司一直考虑复用、封装,但是有时想要达到想要的效果也比较难。...其实,很多东西我也不懂,但是写完代码之后,偶尔还是会去把代码的结构稍微的修改修改,尽量的少给自己挖坑吧。   举一个简单的例子吧。...代码结构的问题   接口有大量的方法,调用接口时需要使用 switch 进行判断,大致结构如下: private function makeXML($xmlName, $xmlNameParam) {...这样的判断结构代码感觉不好管理,增加一个方法方法,就需要增加一个 case 调用,而且看的时候也比较乱。当 case 特别多的时候,其实代码看着也是很别扭的。...', 'bcd'); 以上代码的输出结果如下: func1 abc func2 abc func3 abc func4 abc func5 bcd 以上就是通过数组来存储 case 值和 函数名 从而改变代码结构的方法

    95520

    数据库介绍(MySQL安装 体系结构、基本管理)

    关系型数据库   关系型数据库的特点 二维表 典型产品 Oracle传统企业,MySQL是互联网企业 数据存取是通过SQL(结构化查询语句) 最大特点,数据安全性方面强(ACID) 1.1.3 NoSQL...第2章 Mysql体系结构与基本管理 2.1 客户端与服务器端模型 2.1.1 mysql服务结构 mysql是一个典型的c/s模式,服务端与客户端两部分组成 服务端程序 mysqld...密码验证进行通讯协议 2.2.2 SQL层   sql即结构化的查询语句(数据库内部逻辑语言)sql92 sql99       DDL 数据库定义语言       DCL 数据库控制语言       ...的逻辑构成(数据库内部结构)   逻辑构成是为了用户能够读懂数据出现的,让你更好的理解数据。   ...格式文件 (.frm):    包含每个表和/或视图结构的说明,位于相应的数据库目录中。 触发器: 与某个表关联并在该表发生特定事件时激活的命名数据库对象。

    2.9K01
    领券