
sql优化
sunshine151_szy
每天进步一点点
展开
-
mysql事务总结
2022年第一天对mysql事务进行小总结ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。 原子性(Atomicity) :事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。 一致性(Consistent) :在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规 则都必须应用于事务的修改,以保持数据的完整性。 隔离性(Isolation) :数据库系统提供一定的隔离机制,保证事务在不受外部并原创 2022-01-01 22:12:14 · 865 阅读 · 0 评论 -
mysql常用注意事项
小数类型为 decimal,禁止使用 float 和 double。说明:在存储的时候,float 和 double 都存在精度损失的问题,很可能在比较值的时候,得到不正确的 结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数并分开存储。 不要使用 count(列名)或 count(常量)来替代 count(*)说明:count(*)是 SQL92 定义的标 准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。 count(*)会统计值为 ..原创 2021-12-28 22:12:20 · 687 阅读 · 0 评论 -
mysql索引优化(二)
这次总结下mysql表关联优化mysql表关联常见的有两种算法:Nested-Loop Join算法 Block Nested-Loop Join算法怎样查看是哪种连接?例如t1表10000行记录,t2表100行记录。sql语句s select * from t1 inner join t2 on t1.a= t2.a;添加Explain查看,一般 join 语句中,如果执行计划 Extra 中未出现 Using join buffer 则表示使用的 join 算法是 NL原创 2021-12-25 19:59:46 · 1003 阅读 · 0 评论 -
mysql中Using filesort文件排序原理详解
如果索引不能用于满足ORDER BY子句,MySQL 将执行filesort读取表行并对它们进行排序的操作。用Explain语句可以看到最后一列显示using filesort。(mysql优化中有讲解)下文提到trace文具,记录下trace工具开启方法:进入mysql以后输入set session optimizer_trace="enabled=on",end_markers_in_json=on;即可开启trace工具,一般情况下都不要开trace工具,除非进行优化分.原创 2021-12-20 22:58:54 · 1072 阅读 · 0 评论 -
mysql索引优化(一)
最近涉及一些后台优化,对mysql索引知识进行一下总结。新建测试表新增100000条测试数据DROP PROCEDUREIF EXISTS insert_emp;delimiter;;CREATE PROCEDURE insert_emp () BEGIN DECLARE i INT; SET i = 1; WHILE ( i <= 100000 ) DO INSERT INTO employees ( NAME, age, position )..原创 2021-12-19 19:09:02 · 368 阅读 · 0 评论 -
binlog介绍以及操作
binlog介绍我们的SQL执行时,会将sql语句的执行逻辑记录在我们的bin-log当中,什么是bin-log呢? binlog是Server层实现的二进制日志,他会记录我们的cud操作。Binlog有以下几个特点: 1、Binlog在MySQL的Server层实现(引擎共用) 2、Binlog为逻辑日志,记录的是一条语句的原始逻辑 3、Binlog不限大小,追加写入,不会覆盖以前的日志 如果,我们误删了数据库,可以使用binlog进行归档!要使用binlog归档,首先我们得记.原创 2021-12-15 23:15:47 · 1846 阅读 · 0 评论 -
sql查询存在优化
当sql查询是否存在时,以前总会用到的做法是SELECT count(*) FROM table WHEREa=1优化方案如下:SELECT 1 FROM table WHEREa=1 LIMIT1这样优化以后,会让数据查到一条就返回,不再继续查找;当然,根据查询条件查询出来的条数越多,性能提升的也就越明显,...原创 2021-07-26 22:29:11 · 104 阅读 · 0 评论