本文作者:kris

简单了解MYSQL数据库优化阶段-简单了解mysql数据库优化阶段的方法

kris 2025-01-22 23:30:04 3
简单了解MYSQL数据库优化阶段-简单了解mysql数据库优化阶段的方法摘要: 对mysql数据库表频繁添加删除修改导致数据库卡,怎么优化?不要用delete,可以尝试用下列办法 drop table tblname; -- 彻底删除该表 truncate t...

对mysql数据库表频繁添加删除修改导致数据库卡,怎么优化?

不要用delete,可以尝试用下列办法 drop table tblname; -- 彻底删除该表 truncate table tblname; -- 快速删除数据,但是保存数据结构

mysqlinnodbcount(distinct)很慢,怎么优化?

1. 把你的day字段类型改为long型,在页面显示的时候在格式化成自己需要的样式;

2. 在day字段上建立索引;

3. 把ip_4表类型有InnoDB改为MyISAM,如果不需要事物支持的话,建议不要使用InnoDB。

mysql数据库设计与优化,应不应该使用约束?

首先使用约束可以确保表数据的准确完整和唯一性;

其中常见的约束有

简单了解MYSQL数据库优化阶段-简单了解mysql数据库优化阶段的方法

图片来源:网络

PRIMARY KEY, DEFAULT, UNIQUE, FOREIGN KEY,NOT NULL

一般情况下:DEFAULT 和 NOT NULL是会限制的,可以确保数据完整避免程序逻辑不够严谨造成的系统异常。但也不是绝对的,如果是后期优化还要考虑现有数据是否会造成冲突。

PRIMARY KEY 在大对数情况下会设置作为业务数据的唯一标识符。但一些关系表一般可以不设置。有人说PRIMARY KEY 必须自增,其实也未必。得就实际业务需求而定。

UNIQUE 约束可以保证一列或者多列组合值都是唯一的。可以提升这一列的搜索效率。但同样也得考虑历史数据的情况。

当然以上情况只是经验之谈,具体数据库的优化一定是根据实际的业务逻辑进行的。可能没有什么必须遵守不可违背的定律。

只要符合业务需求并且能够提升业务效率,就是合理的设计。

外键约束可以保证数据的正确性和有效性,防止出现不符合预期数据,从数据的角度来说是必要的。为了保证约束,数据库会在更新数据时,对相应表的数据进行检查,这就带来了很大的性能开销。

目前的互联网应用实践来说,一般在开发测试环境使用外键,而生产环境则不使用外键。目的是在开发测试阶段通过数据库的外键机制来验证程序的正确性,而在生产环境则不使用外键,来提升数据库的性能。

非空约束推荐使用,以mysql来说,是有好处的。

如果一个字段它的数据要求每一行数据都是唯一,并且会频繁用于查询,那么推荐增加唯一索引

这是一项新功能,用于指定在插入或更新到一行之前检查值的条件。如果表的任何行的搜索条件的结果为 FALSE,则约束可能返回错误(但如果结果为 UNKNOWN 或 TRUE,则约束不会返回错误)。此功能开始在 MySQL 8.0.16 上运行,在以前的版本中,我们可以创建它,但它不起作用,这意味着支持语法,但不起作用。要牢记的使用规则:

  • AUTO_INCREMENT 自增列不允许使用
  • 引用另一个表中的另一列不允许使用
  • 存储的函数和用户定义的函数不允许使用
  • 存储过程和函数参数不允许使用
  • 子查询不允许使用
  • 在外键中用于后续操作(ON UPDATE,ON DELETE)的列不允许使用
  • 为下一条语句 INSERT,UPDATE,REPLACE,LOAD DATA 和 LOAD XML 评估此次监测。此外,还会为 INSERT IGNORE,UPDATE IGNORE,LOAD DATA…IGNORE 和 LOAD XML…IGNORE 评估此监测约束。对于这些语句,如果约束的评估结果为 FALSE,则会发生警告。插入或更新被跳过。

我们可以使用此功能在表中添加更多的逻辑,但是根据我以前作为程序员的经验,我不建议在表中添加逻辑,因为除非您无法访问应用程序代码,否则很难找到或调试错误。

文章版权及转载声明

作者:kris本文地址:https://www.damoyx.com/p/26311.html发布于 2025-01-22 23:30:04
文章转载或复制请以超链接形式并注明出处大漠游侠网

阅读
分享