关系型数据库
文章平均质量分 54
关系型数据库
李昂的数字之旅
数字梦想之旅
展开
-
Mysql索引总结
总结一下Mysql Innodb索引相关的知识,索引是以空间换时间的方式来加快查询速度。本质是将查询涉及的字段单独拎出来减少查询的基数和减少磁盘io次数,先做了排序可以用更高效的查询算法。同时索引也有一些弊端,需要占用额外的空间,还不少。数据写入时,维护索引的数据排序,要消耗cpu。随着索引数量增加,查询优化器要评估每个索引的效率,对于用不到的索引的评估时间,影响查询效率。原创 2023-11-28 23:47:48 · 860 阅读 · 0 评论 -
Mysql的Repeatable Read如何解决幻读
第二种方式是基于Next-key Lock(行锁+间隙锁)实现,如果在事务中使用了当前读,即读的时候使用了for update、lock on share mode等,会读到最新提交的数据,此时避免幻读就要通过对记录和记录间隙加锁,阻止其他事务修改当前记录或在记录之间插入新数据。发生这个现象的主要原因是,在两次查询之间,其他事务插入了新的数据,原来的事务没有对新增的数据进行过滤或者限制插入,导致第二次与第一次查询结果不一致。2. 大于最大的事务ID的,一定比当前事务晚,当前事务不可见。原创 2023-02-23 23:35:54 · 508 阅读 · 2 评论 -
mysql数据恢复-mysqlbinlog
恢复数据的关键是数据库开启了log-bin原创 2014-08-27 14:54:57 · 444 阅读 · 0 评论 -
mysql存储过程error-This function has none of DETERMINISTIC, NO SQL
在 出错信息: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NOSQL, or READS SQL DATA in its declaration and binary logging isenabled (you *might* want to use the less safelog_bin_trust_fu原创 2014-08-27 11:34:50 · 345 阅读 · 0 评论 -
通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 是无法给远程连接的用户权限问题 Navicat for mysql 1130错误 用Navicat连接远程MYSQL,提示如下错误,我以为是自己的防火墙问题,但是关了,依然不行。 我认为这段英文,有点误导,让人转载 2015-05-20 11:04:57 · 454 阅读 · 0 评论 -
sql查询语句优化
1:选择最有效率的表名顺序(只在基于规则的优化器中有效) ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.首先,扫描第一个表(FROM子句中最后的那个表)并对记转载 2015-05-20 19:54:12 · 323 阅读 · 0 评论 -
mysql编码配置
mysql编码总共涉及5方面: 数据库服务器编码server数据库编码database数据表编码tbale表字段编码field数据库连接编码connection 查看server/database/connection的编码 mysql> show variables like 'charact%'; 查看server/database/connec原创 2016-12-10 13:40:44 · 372 阅读 · 0 评论