资阳网站建设临海大经建设集团网站

web/2025/10/1 2:48:50/文章来源:
资阳网站建设,临海大经建设集团网站,群晖 多个wordpress,深圳宝安高端网站建设谈到数据库#xff0c;大家第一想法就是怎么去优化#xff0c;怎么让查询操作更快。我认为最好的方式就是从开始数据库设计的时候就要尽量考虑周全。如果不幸是个老项目#xff0c;就得从优化入手了。接下就从设计和优化谈一下我的一些认识和经验。1#xff1a;数据库的设计… 谈到数据库大家第一想法就是怎么去优化怎么让查询操作更快。我认为最好的方式就是从开始数据库设计的时候就要尽量考虑周全。如果不幸是个老项目就得从优化入手了。接下就从设计和优化谈一下我的一些认识和经验。1数据库的设计一个好的数据库设计方案对于数据库的性能常常会起到事半功倍的效果。数据库的设计包含数据库架构和业务表的设计。1数据库架构根据不同的数据量和访问量来设计不同的架构。适合自己的才是最好的。 单实例数据读取和写入都是一个数据库实例。备份实例不算在内。这个适用于小型的企业内部系统。缺点是只适合数据量少的场景优点是能达到数据的强一致性。 垂直拆分多实例。不同的业务走不同的实例。同样也是适用于单个业务数据量不大并且每个业务相对独立不产生关联。读写分离主从架构。通过主从结构主库抗写压力通过从库来分担读压力。适用于写少读多数据一致性的实时性要求不高的应用。主从集群结构。适用于写多读也多的应用。实现是最为复杂的一种需要考虑数据如何路由后期扩容也相对麻烦。需要设计初期在理解业务的基础上选择好合适的路由策略。例如rangehash等云数据库阿里云rds等。适合没有专业数据库运维团队的公司使用非常方便和简单。2业务表的设计常见业务表分类1配置表这种表通常存放业务一些基础的配置信息或者字典信息。表的数据量一般都比较小修改变化的操作不太频繁通常都是Select查询操作。2状态表这种表通常存放在业务系统中实体读象的状态信息常见的有用户信息表订单信息表等。这种表的数据量与实体读象的规模有直接关系比如一个APP有多少注册用户通常这个APP的用户表都会有多少条记录。状态表的变化通常比较频繁而且Insert、Update、Select操作都会有Delete操作是否有通常会根据业务情况的规定决定。3日志表这种表通常用来记录业务系统中某种实体的状态信息常见的有用户登录表、充值信息记录表等。这种表的数据规模通常比较大而且如果业务状态变化频繁记录的变化信息比较多这种表的数据量和插入性能都要求比较高。日志表的操作通常会以Insert操作为主个别业务会对日志表进行查询。MySQL五种特殊需求架构中的高性能写入架构主要就是应用这种表的需求。4归档表这种表是将上面三种OLTP业务表的数据进行归档或者冷热分离的表。对线上业务三类表进行数据归档、冷热分离一方面可以控制线上业务表的数据规模保证业务表性能另一方面进行归档后可用于对归档历史数据进行更好的查询反映和支持。归档表的数据量大小与对应的线上表大小、归档周期有关。归档表的操作除了归档过程的数据加载外主要就是Select查询操作了归档后就算是只读表。5统计数据表统计数据表是指业务有离线统计分析需求时需要将各种线上表和归档表的数据通过ETL过程流转到线上OLAP统计分析系统中的原始数据表。这类表通常数据量会非常大一个OLAP统计分析平台会汇总多个线上业务系统的数据进行统计分析。统计数据表的操作除了数据流转动作外主要就是各种统计分析程序的访问计算。6统计结果表统计结果表是在业务有离线统计分析需求时各种统计分析过程访问统计数据表中的数据按照一定的逻辑进行统计分析后的结果数据。这种统计结果数据通常数据量会比较小。统计结果表的操作处理结果流转动作外主要就是供访问接口进行Select查询。对业务表类型的梳理可以对所有的业务系统进行一个大体的划分做到心中有数。下面是设计表的一些经验将字段很多的表分解成多个表对于字段较多的表如果有些字段的使用频率很低可以将这些字段分离出来因为当一个表的数据量很大时会由于使用频率低的字段的存在而变慢。增加中间表对于需要经常联合查询的表可以建立中间表以提高查询效率。增加冗余字段合理的加入冗余字段可以提高查询速度。冗余字段会导致一些问题比如冗余字段的值在一个表中被修改了就要同步关联的表否则会导致数据不一致。这要根据实际情况平衡数据库性能进行冗余字段的设计。所有字段均定义为NOT NULL除非你真的想存储null。提前做好数据量的预估进行分表设计。不要等需要拆分时再拆一般把表的数据量控制在千万级别。当单表数据量达到一定程度时MySQL5.x时代的性能拐点则为1KW - 2KW行级别具体需根据实际情况测试为了提升性能最为常用的方法就是分表。分表的策略可以是垂直拆分比如不同订单状态的订单拆分到不同的表也可以是水平拆分比如按月将订单拆分到不同表。如果在业务层分表会将逻辑变得复杂而且分散。可以引入分表的中间件屏蔽分表后的细节让业务层像查询单表一样查询分表后的数据。比如Mycat。访问量不大但是表数据很多的表我们可以采取分区表实现起来也比较简单选择统一的字符集。MySQL采用“阶梯”式的方式来设定字符集默认值每个数据库每张表都有自己的默认值它们逐层继承最终最靠底层的默认设置将影响你创建的对象。不同字符集和校对规则之间的转换可能会带来额外的系统开销影响数据库的性能。 合理的设置主键和索引。 主键分自增主键和业务主键。 自增主键写入、查询效率和磁盘利用率都高但每次查询都需要两级索引因为线上业务不会有直接使用主键列的查询。 业务主键写入、查询效率和磁盘利用率都低但可以使用一级索引依赖覆盖索引的特性某些情况下在非主键索引上也可以实现1次索引完成查询 一般情况下都是采用业务主键。 索引大概分为三类。 主键索引InnoDB会自动在表的主键上创建索引数据结构使用BTree。 非主键索引非主键列上的索引为二级索引(因为一次查询需要查找两个索引树) 联合索引联合索引也叫多列索引索引结构的key包含多个字段排序时先第一列比较如果相同再按第二列比较以此类推。 2数据库的优化mysql说起mysql优化一定要了解一下mysql原理这样才能深入的理解那些sql规则。下图展示了MySQL的逻辑架构图。MySQL客户端/服务端通信协议是“半双工”的在任一时刻要么是服务器向客户端发送数据要么是客户端向服务器发送数据这两个动作不能同时发生。一旦一端开始发送消息另一端要接收完整个消息才能响应它所以我们无法也无须将一个消息切成小块独立发送也没有办法进行流量控制。客户端用一个单独的数据包将查询请求发送给服务器所以当查询语句很长的时候需要设置max_allowed_packet参数。当服务器响应客户端请求时客户端必须完整的接收整个返回结果而不能简单的只取前面几条结果然后让服务器停止发送。因而在实际开发中尽量保持查询简单且只返回必需的数据减小通信间数据包的大小和数量是一个非常好的习惯这也是查询中尽量避免使用SELECT *以及加上LIMIT限制的原因之一。1sql的优化。通过explain和show profiles进行执行计划分析找出问题进行针对性的优化。其中创建高效索引是最有效的一个手段。 多列索引和索引顺序 出现多个索引做相交操作时多个AND条件通常来说一个包含所有相关列的索引要优于多个独立索引。 在选择性高的字段上建立索引可以让MySQL在查询时过滤掉更多的行。对于多列索引哪个索引字段在前面取决于索引的选择性的高低。选择性高的索引排在前面有利于提高查询效率。例如联合索引user_group_idtrade_amount用户的群组肯定比订单的交易金额的选择性高。 覆盖索引如果一个索引包含或者说覆盖所有需要查询的字段的值那么就没有必要再回表查询这就称为覆盖索引。覆盖索引是非常有用的工具可以极大的提高性能因为查询只需要扫描索引会带来许多好处优化关联查询以小表驱动大表。子查询尽量换成join。这是因为joinMySQL不需要在内存中创建临时表来完成这个逻辑上的需求。确保任何的GROUP BY和ORDER BY中的表达式只涉及到一个表中的列这样MySQL才有可能使用索引来优化。 优化LIMIT分页一个常见的问题是当偏移量非常大的时候比如LIMIT 10000 20这样的查询MySQL需要查询10020条记录然后只返回20条记录前面的10000条都将被抛弃这样的代价非常高。优化这种查询一个最简单的办法就是尽可能的使用覆盖索引扫描而不是查询所有的列。然后根据需要做一次关联查询再返回所有的列。对于偏移量很大时这样做的效率会提升非常大。考虑下面的查询 修改前SELECT film_id,description FROM film ORDER BY title LIMIT 50,5; 修改后 SELECT film.film_id,film.description FROM film INNER JOIN ( SELECT film_id FROM film ORDER BY title LIMIT 50,5 ) AS tmp USING(film_id); 优化UNION除非确实需要服务器去重否则就一定要使用UNION ALL如果没有ALL关键字MySQL会给临时表加上DISTINCT选项这会导致整个临时表的数据做唯一性检查这样做的代价非常高。 避免导致索引失效的写法 1负向条件查询不能使用索引not in/not exists都不是好习惯 2前导模糊查询不能使用索引likeXX% 3数据区分度不大的字段不宜使用索引 4在属性上进行计算不能命中索引 5复合索引最左前缀不满足 强制类型转换会全表扫描如果明确知道只有一条结果返回limit 1能够提高效率2合理设置mysql的部分参数达到最高效。thread_pool_size如果主引擎(primary storage engine)为InnoDB,thread_pool_size最佳设置可能在16和36之间最常见的优化值倾向于24到36。thread_pool_stall_limit用处理被阻塞和长时间运行的语句确保服务器不完全被阻塞。设置过长会导致线程被阻塞引起性能问题。tmp_table_size:通过设置tmp_table_size选项来增加一张临时表的大小例如做order by ,GROUP BY操作生成的临时表。如果调高该值MySQL同时将增加heap表的大小可达到提高联接查询速度的效果建议尽量优化查询要确保查询过程中生成的临时表在内存中避免临时表过大导致生成基于硬盘的MyISAM表。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

表白网站制作源代码抖音代运营公司经营范围

Metasploit框架的auxiliary模块涵盖了许多不同的功能,包括扫描、枚举、信息收集和漏洞探测等。以下是一些常见的auxiliary模块及其使用案例: 1. 端口扫描 auxiliary/scanner/portscan/tcp:TCP端口扫描。 use auxiliary/scanner/portscan/tcp…

国外互联网资讯网站制作公司网站要多少费用呢

亲爱的技术探索者们,今天我要向大家隆重推荐一个在开源社区中崭露头角的项目——RWKV_Pytorch。这是一个基于Pytorch的RWKV大语言模型推理框架,它不仅具备高效的原生Pytorch实现,而且还扩展了对多种硬件的适配支持,让模型的部署和…

泉州企业自助建站系统网站空间是指什么

用批处理或DOS更改属性。批处理就是建个记事本,输入attrib -h -s -r %~dp0\*.* /s /d,然后另存为随便.bat,把它放到那些隐藏文件夹外面(不是里面),然后双击打开,等它自己关闭窗口就好了转载于:h…

swipe类网站长沙人才招聘网长沙58同城招聘网

系列文章目录 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记01:赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记02:开发环境安装 嵌入式|蓝桥杯STM32G431(…

mvc5 网站开发之美wordpress伪静态别名

1. S-Function简介 S-Function是system-function的缩写。说得简单,S-Function就是用MATLAB所提供的模型不能完全满足用户,而提供给用户自己编写程序来满足自己要求模型的接口。 2. MEX函数与M文件的区别 第一, MEX 函数能实现的回调函数比…

c2c网站建设价格设计网站推荐原因

第一章:引言 小程序开发近年来取得了快速的发展,成为了移动应用开发的重要一环。随着人工智能技术的飞速发展,越来越多的企业开始探索如何将人工智能应用于小程序开发中,为用户提供更智能、便捷的服务。本文将带您一起探索人工智能…

php企业网站开发深圳app设计

在这篇文章中,我将解释如何使用Gatling项目为您的JAX-RS Java EE端点编写压力测试,以及如何将它们与Gradle和Jenkins Pipeline集成,因此,除了进行简单的压力测试外,您还可以使用以下方法: 连续的压力测试&a…

做外贸雨伞到什么网站网站集约建设报告

求。ip提取网站源码带采集 要求是PHP源码。必须带采集类似 小峰IP提取网站,安小莫IP提取,迷惘IP提取,冰封IP提取免费类型的 不要淘宝类型的 200 转载于:https://www.cnblogs.com/PS-apple/p/4342866.html

兰州移动端网站建设购物网站html代码

转载自“搜狗测试”微信。 人员培养的痛点 大家在组内人员培养是否遇到了如下问题: 组员成长缓慢,无法达到预期 有时候感觉组员没啥进步,有时候感觉组员挺好的,无法统一评价 脑子里都是组员的问题,无法集中精力做其他…

免费网站模板 html如何对自己做的php网站加密

2024年化学材料、清洁能源与生物技术国际学术会议(ICCMCEB2024) 会议简介 2024国际化学材料、清洁能源和生物技术大会(ICCMCEB2024)将在长沙隆重举行。本次会议旨在汇聚来自世界各地的化学材料、清洁能源和生物技术领域的专家学者,共同探…

毕业设计网站开发任务安排2017网站icp备案

《计算机组成原理实验》教学大纲 - 兰州大学信息科学与工程学院目 录《C课程设计》教学大纲1《C语言课程设计》教学大纲3《C语言课程设计》教学大纲5《Java EE 编程思想课程设计》教学大纲7《JAVA语言课程设计》教学大纲9《JAVA语言课程设计》教学大纲11《编译原理课程设计》教…

潍坊市企业型网站建设怎样做元古建筑的网站结构图

目录 前言 ZigBee技术简介 ZigBee智能照明应用 方案构架 特点 应用总结 前言 我国城市路灯照明大致可分为两大类:传统路灯照明系统和智能路灯照明系统。传统路灯照明采用简单的有线电路控制,其安装困难,维护成本高,耗电量大…

大型网站开发成本网站正在建设中不动产

来源:智东西摘要:本期我们推荐来自清华大学副教授唐杰领导的学者大数据挖掘项目Aminer的研究报告,讲解人脸识别技术及其应用领域,介绍人脸识别领域的国内玩人才并预测该技术的发展趋势。自20世纪下半叶,计算机视觉技术…

怎么设自己的网站建一个网站多少钱

数据加密、文档加密为什么都选择安企神软件 免费试用安企神 在数据加密和文件加密领域,有众多优秀的软件,他们功能各异、价格不同、效果也大相径庭,经过对比使用、用户口碑和技术网站评判,安企神在各方面都稳坐第一把交易。其原…

达州住房和城乡建设部网站网站建设合同管辖

点击上方“九尾短视频研习室” 可以订阅哦!今天分享使用 iPhone 或者安卓版 filmic 拍摄的素材,如何无损导入到win 或 Mac 电脑中~01iPhone Mac使用 iPhone 和 Mac 的朋友,可以使用“隔空投送”无线传输,但是这个过程中&#xff…

怎样简单做网站做百度竞价网站修改影响排名吗

感谢你的阅读,本文由 腾讯ISUX 版权所有,转载时请注明出处,违者必究,谢谢你的合作。注明出处格式:腾讯ISUX (https://isux.tencent.com/web-app-rem.html) (其他阅读:滑屏 H5 开发实践九问http…

网站收录不好怎么办网站首页外链

文章目录 01 《ChatGPT 驱动软件开发》内容简介 02 《ChatGPT原理与实战》内容简介 03 《神经网络与深度学习》04 《AIGC重塑教育》内容简介 05 《通用人工智能》目  录 2023年是人工智能大语言模型大爆发的一年,一些概念和英文缩写也在这一年里集中出现&#xff…

企业网站建设立项报告小米发布会时间2022

# 导入zipfile模块,用于处理zip文件 import zipfile # 导入os模块,用于处理文件和目录 import os # 指定要解压缩的目录 dir_name "D:/test" # 指定压缩文件的扩展名 extension ".zip" # 使用os.walk()遍历目录及其子目录中的所…

顺德门户网站建设公司找培训班一般在什么平台

正题 题目大意 n∗mn*mn∗m填(((或者)))。求一个方案使得最多的行和列匹配。 解题思路 我们先考虑nnn或mmm为奇数,那么显然奇数的肯定不必配,那么就只需要考虑行或列即可。 若nnn和mmm都为偶数时 我们发现在边边的行列不可能都匹配上,那就…

网站用的什么数据库cpa项目怎么做必须有网站么

一、岭回归 在简单的线性回归中,一味追求平方误差最小化,R2值尽可能大,可能会受到噪声的严重干扰。噪声,即偶发的错误的值。 如图,若为满足所有点的拟合(虚线),表面上看R2值小&…