随笔分类 - MySQL
摘要:知识点传送门:👇 1、事务管理 隔离级别 MySQL默认隔离级别:可重复读(Repeatable read) 来自灵魂的拷问:👇 ~ 为什么 MySQL 选择 "可重复读" 作为默认隔离级别? 正文:👇 我们先来思考一个问题,在Oracle,SqlServer中都是选择读已提交(Read Co
阅读全文
摘要:1、乐观锁 乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指操作数据库时(更新操作),想法很乐观,认为这次的操作不会导致冲突。在操作数据时,并不进行任何其他的特殊处理(也就是不加锁),而在进行更新后,再去判断是否有冲突了。 通常实现是这样的:👇 在表中的数据进行操作时(更新),先给数据表加一
阅读全文
摘要:binlog :二进制日志是mysql-server层的,主要是做主从复制,时间点恢复使用。 redo log :重做日志是InnoDB存储引擎层的,用来保证事务安全。 undo log : 回滚日志保存了事务发生之前的数据的一个版本,可以用于回滚,同时可以提供多版本并发控制下的读(MVCC),也即
阅读全文
摘要:1、避免使用 select * 很多时候,我们写sql语句时,为了方便,喜欢直接使用select *,一次性查出表中所有列的数据。 反例: select * from user where id=1; 在实际业务场景中,可能我们真正需要使用的只有其中一两列。查了很多数据,但是不用,白白浪费了数据库资
阅读全文
摘要:<!-- 按日查询 --> SELECT DATE_FORMAT(created_date,'%Y-%m-%d') as time,sum(money) money FROM o_finance_detail where org_id = 1000 GROUP BY time <!-- 按月查询 -
阅读全文
摘要:MySQL 锁概述: 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。 如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。
阅读全文
摘要:慢SQL日志查询: 查看是否开启慢查询日志: show variables like '%slow%'; linux下打开需在my.cnf的[mysqld]里面加上以下内容: 打开慢查询日志。修改MySQL的配置文件my.cn一般是在/etc目录下面,加上下面三行配置后重启MySQL。 slow_q
阅读全文
摘要:1 MyBatis 通过包含的jdbcType类型 BIT FLOAT CHAR TIMESTAMP OTHER UNDEFINED TINYINT REAL VARCHAR BINARY BLOB NVARCHAR SMALLINT DOUBLE LONGVARCHAR VARBINARY CLO
阅读全文
摘要:今天生产上遇到上述的bug: 系统变量innodb_large_prefix开启了,则对于使用DYNAMIC或COMPRESSED行格式的InnoDB表,索引键前缀限制为3072字节。如果禁用innodb_large_prefix,不管是什么表,索引键前缀限制为767字节。 上述的bug很明显是索引
阅读全文
摘要:where执行顺序是从左往右执行的,在数据量小的时候不用考虑,但数据量多的时候要考虑条件的先后顺序,此时应遵守一个原则:排除越多的条件放在第一个。 在用MySQL查询数据库的时候,连接了很多个过滤条件,发现非常慢。例如:SELECT … WHERE p.languages_id=1 AND t.ty
阅读全文
摘要:1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进
阅读全文
摘要:对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。下面用几个例子对比查
阅读全文
摘要:表结构及数据: DROP TABLE IF EXISTS `course`;CREATE TABLE `course` (`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`course_name`
阅读全文
摘要:引文:http://www.mamicode.com/info-detail-2907260.html
阅读全文
摘要:目标:搭建两台MySQL服务器,一台作为主服务器,一台作为从服务器,实现主从复制 环境:虚拟机 主数据库:192.168.211.101 从数据库:192.168.211.102 MySQL 安装可参考:逛一逛 一):主库配置步骤 1、配置主库:授权给从数据库服务器 mysql>GRANT REPL
阅读全文
摘要:第一步: 1):下载mysql安装包:这里选择下载版本 5.6.33,通用版,linux下64位 http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz 第二步: 2):卸载老版本M
阅读全文