随笔分类 - MySQL
摘要:InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。关于事务我们之前有专题介绍,这里就着重介绍下它的锁机制。 总的来说,InnoDB按照不同的分类共有七种类型的锁: 共享/排它锁(Shared and Exclusive Locks) 意向锁(Int
阅读全文
摘要:面试官:“小陈,说一下你常用的SQL优化方式吧。” 陈小哈:“那很多啊,比如不要用SELECT *,查询效率低。巴拉巴拉...” 面试官:“为什么不要用SELECT * ?它在哪些情况下效率低呢?” 陈小哈:“SELECT * 它好像比写指定列名多一次全表查询吧,还多查了一些无用的字段。” 面试官:
阅读全文
摘要:具体方法: (推荐教程:mysql数据库学习教程) 查看正在执行的sql语句 show processlist; 查看表被锁状态 # 查询哪些表锁了 show OPEN TABLES where In_use > 0; 查看造成死锁的sql语句 # 查询innodb引擎的运行时信息 show eng
阅读全文
摘要:在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL
阅读全文
摘要:示例1 -- 创建存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `rename_file_name`() begin DECLARE flag INT; DECLARE errfId BIGINT(20); -- e_relative_record
阅读全文
摘要:本文章来给大家提供三种在mysql中避免重复插入记录方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法,各位同学可尝试参考。 案一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使
阅读全文
摘要:如何在MySQL中查找效率慢的SQL语句呢?这可能是困扰很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日
阅读全文
摘要:MySQL最易碰到的性能问题就是数据量逐步增大之后的翻页速度变慢的额问题,而且越往后翻页速度越慢,如果用最快速的办法解决,以下就是解决办法,简单方便。 1、问题现状 现有MySQL数据表 event_data ,数据量 36.7万,如下: 使用SQL-Limit分页查询,需要花费时间382秒,如下:
阅读全文
摘要:如果你忘了 MySQL 的 root 帐号密码,别担心,使用下面步骤就可以重设一个新密码: 噢了!
阅读全文
摘要:The user specified as a definer ('root'@'%') does not exist 此种报错主要是针对访问视图文件引起的(没有权限) 经查明:是用户root并没有获得mysql数据库的所有权限。 解决方法: 2.进入mysql的安装路径之前,要确保你的mysql服
阅读全文
摘要:a表 b表 a.id同parent_id 存在关系 1)内连接:相当于select a.*,b.* from a,b where a.id = b.id select a.*,b.* from a inner join b on a.id=b.parent_id 结果是 2)左连接:左表的挨个信息去
阅读全文
摘要:TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TAB
阅读全文
摘要:sql和mysql执行顺序,发现内部机制是一样的。最大区别是在别名的引用上。 一、sql执行顺序 从这个顺序中我们不难发现,所有的 查询语句都是从from开始执行的,在执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入。 第一步:首先对from子句中的前两个表执
阅读全文
摘要:四大特性 1:原子性。事务是一个不可分割的整体,事务开始的操作,要么全部执行,要么全部不执行。 2:隔离性。同一时间,只允许一个事务请求同一组数据。不同的事务彼此之间没有干扰。 3:一致性。事务开始前和结束后,数据库的完整性约束没有被破坏 。 4:稳定性。事务完成后,事务对数据库的所有更新将被保存到
阅读全文
摘要:一、为什么用自增列作为主键 1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引、如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(R
阅读全文
摘要:当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化。 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在 千万级以下,字符串为主的表在 五百万以下是没有太大问题的。而事实上很多时候MySQL单
阅读全文
摘要:一、TIMESTAMP[(M)] 时间戳。范围是’1970-01-01 00:00:00’到2037年。 TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。 如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。 也可以通过分配一个NULL值,将T
阅读全文
摘要:1、如果为空返回0 select ifnull(null,0) 2、如果为空返回0,否则返回1 select if(isnull(col),0,1) as col. MYSQL 中的IFNULL函数 IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,
阅读全文
摘要:所谓的预处理技术,最初也是由MySQL提出的一种减轻服务器压力的一种技术! 传统mysql处理流程 1, 在客户端准备sql语句 2, 发送sql语句到MySQL服务器 3, 在MySQL服务器执行该sql语句 4, 服务器将执行结果返回给客户端 这样每条sql语句请求一次,mysql服务器就要接收
阅读全文
摘要:java mysql 数据类型对 对于bolb,一般用于对图片的数据库存储,原理是把图片打成二进制,然后进行的一种存储方式,在java中对应byte[]数组。对于boolen类型,在mysql数据库中,个人认为用int类型代替较好,对bit操作不是很方便,尤其是在具有web页面开发的项目中,表示0/
阅读全文