MySQL学习笔记(个人随手笔记)

一、索引

索引:索引是帮助mysql高效获取数据的数据结构
索引创建语句:create index 索引名 on 表名(字段名)
当你查询数据库时,如果该列没有加索引,则查询时是遍历操作,而加了索引就是定位,能够很快查询到数据(一般在百万级数据中才能体现出来索引的优势)
索引原则:
1、索引不是越多越好
2、不要对经常变动的数据加索引
3、小数据量不要加索引
4、索引一般加在常用来查询的字段

二、事务

事务:将一组sql放在一个批次中执行
事务的ACID原则
1、原子性:要么都成功,要么都失败
2、一致性:事务前后的数据库完整性要保持一致
3、持久性:事务一旦提交,则不可逆,被持久到数据库中
4、隔离性:多个用户并发访问数据库时,数据库为每个用户开启的事务,不能被其他事务的操作所干扰。

脏读:一个事务读取了另一个事务没有提交的数据
不可重复读:多次读取结果不一致
虚读(幻读):前后读取不一致

三、数据库存储引擎

MyISAM 节约空间,速度较快
InnoDB 安全性高,事务的处理,多表用户操作

四、delete和truncate删除数据库

delete:
1、InnoDB 自增列会从1开始(存在内存中的,断电即失)
2、MyISAM 继续从上一个自增量开始(存在文件当中,不会丢失)
truncate:
不会印象事务,自增重新从1开始

count(字段名)、count(*)、count(1)区别
cout(字段名):会忽略所有的null值,没有主键时效率高
count():不会忽略所有的null值,本质是计算行数
count(1):不会忽略所有的null值,本质计算行数,效率比count(
)略高

原文地址:https://www.cnblogs.com/kiki-study/p/13656122.html