MySQL 优化数据库对象
一、考虑是用 procedure analyse() 函数对当前应用的表进行分析。字段类型是否可优化。
二、通过拆分提高表的访问效率。
(A) 针对MyISAM表,有两种拆分方法:
垂直拆分:主码和某些列在一个表,主码和另一些列在另一个表。这在一个表中某些列常用,而某些列不常用的时候采用。此种方法:数据页变小,减少I/O次数,缺点是:需管理冗余,查询需要联合操作。
水平拆分:根据一列或多列的数据的值把数据行放到两个独立的表中。使用场景:
表很大,分割后降低数据量和索引的页数,降低索引的层数,提高查询速度。
表中数据本来就有独立性,
数据需要存放到多个介质上。
三、逆规范化
常见的有:增加冗余列、增加派生列、重新组表和分割表。
逆规范化需要维护数据的完整性,常用方法:批处理维护、应用逻辑和触发器。
四、使用中间表提高统计查询速度
中间表在统计查询中经常会用到,其优点是:
中间表复制源表部分数据,切与源表相隔离,在中间表上做统计查询不会对在线应用产生负面影响。
中间表可以灵活地添加索引和增加新字段,方便实现功能。
MySQL 优化数据库对象的更多相关文章
- (1.13)mysql优化数据库对象
(1.13)mysql优化数据库对象 1.mysql优化数据库对象 [1.1]数据库对象类型优化 select * from test1 procedure analyse(); ,); --不要为那 ...
- 19.Mysql优化数据库对象
19.优化数据库对象19.1 优化表的数据类型应用设计时需要考虑字段的类型和长度,并留有一定长度冗余.procedure analyse()函数可以对表中列的数据类型提出优化建议.procedure ...
- MySQL优化(三):优化数据库对象
二.优化数据库对象 1.优化表的数据类型 应用设计的时候需要考虑字段的长度留有一定的冗余,但不推荐很多字段都留有大量的冗余,这样既浪费磁盘空间,也在应用操作时浪费物理内存. 在MySQL中,可以使用函 ...
- MySQL优化篇(一),我可以和面试官多聊几句吗?——SQL优化流程与优化数据库对象
我可以和面试官多聊几句吗?只是想偷点技能过来.MySQL优化篇(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. MyISAM表锁和InnoD ...
- mysql优化-数据库设计基本原则
mysql优化-数据库设计基本原则 一.数据库设计三范式 第一范式:字段具有原子性 原子性是指数据库的所有字段都不可被再次划分,如下表就不满足原子性,起点与终点 字段就可被拆分为起点与终点两个字段. ...
- (5)MySQL进阶篇SQL优化(优化数据库对象)
1.概述 在数据库设计过程中,用户可能会经常遇到这种问题:是否应该把所有表都按照第三范式来设计?表里面的字段到底改设置为多大长度合适?这些问题虽然很小,但是如果设计不当则可能会给将来的应用带来很多的性 ...
- mysql优化-数据库优化、SQL优化
我有一张表w1000,里面有1000万条数据,这张表结构如下:CREATE TABLE `w1000` ( `id` varchar(36) NOT NULL, `name` varchar(10) ...
- MySQL定义数据库对象之指定definer
mysql创建view.trigger.function.procedure.event时都会定义一个Definer: SQL SECURITY 有两个选项,一个为DEFINER,一个为INVOKER ...
- [数据库系列之MySQL]Mysql优化笔记
大型网站提速之MySql优化 数据库优化包括的方面 数据库优化是一个综合性的技术,并不是通过某一种方式让数据库效率提高很多,而是通过多方面的提高,从而使得数据库提高很多. 主要包括: 1.表的设计合理 ...
随机推荐
- [LeetCode] Minimum Number of Arrows to Burst Balloons 最少数量的箭引爆气球
There are a number of spherical balloons spread in two-dimensional space. For each balloon, provided ...
- [LeetCode] Rank Scores 分数排行
Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ra ...
- JavaScript检测对象的类属性
function classof(o) { if(o === null) { return "Null"; } if(o === undefined) { return " ...
- 安装Anaconda
安装Anaconda来安装一切 spyder是python科学计算IDE,类似matlab.这是一个基于Qt的软件,如果使用pip install安装,会出现各种bug.pip install spy ...
- BPM问题
1.安装XFormDesigner后编辑界面报错 解决方法:
- Djago模板拾起
在view中使用template: 首先在settings.py中配置模板文件的路径. TEMPLATE_DIRS = ( '/home/django/mysite/templates', ) 1.变 ...
- PRINCE2特征(二)
英国体系环境下项目有什么特征(二) 今天又要和大家分享了,这个时间也是自己很喜欢的时刻.上次给大家分享的是英国体系下项目的特征之一:临时性.不知道大家还有没有印象,英国体系下项目的特征有五个,今天来给 ...
- Android studio
情况一: 描述:写Android app时,出现activity对应的layout预览图所显示的activity是有标题栏的,但是运行该app,无论是模拟器还是真机,却出现没有了标题栏的情况,而自 ...
- 【POJ-1390】Blocks 区间DP
Blocks Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5252 Accepted: 2165 Descriptio ...
- synergy 使用记录
synergy 是一个多台电脑之间,共享鼠标.键盘的开源工具,做的很赞.目前,这个工具对 Windows.Linux.MacOS 都有很好的支持. 手上 arm 板安装的是 debian 系统,所以, ...