
MySQL
关于mysql
城溪羡鱼
写博客少说废话
展开
-
MySQL-索引设计原则
联合索引尽量覆盖条件不要建立太多索引,因为索引本身就占空间选用区分度高的字段建索引,比如性别字段就不建议原创 2021-07-25 10:32:58 · 107 阅读 · 0 评论 -
MySQL-ACID
原子性要么全部执行成功,要么全部执行失败持久性一旦存储,永久保存,有宕机恢复机制隔离性事务之间的操作不会相互干扰一致性(由前三个共同完成)原创 2021-07-25 09:29:04 · 79 阅读 · 0 评论 -
MySQL-mvcc
mvcc是什么?mvcc叫多版本并发控制,它是解决读写冲突的一种无锁并发控制机制,作用是解决了读写不会互相阻塞,提高读写并发读写能力,并且解决了不可重复读的问题mvcc的原理?事务ID、回滚指针、隐藏自增字段undo日志 ,Read View(一致性快照)它给事务分配单向增长的时间戳,为每个修改保存一个版本,版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照注意项?mvcc在读提交和可重复读隔离级别下读提交 – 事务每个sql语句都创建新的ReadView重复读 –原创 2021-07-25 09:18:36 · 124 阅读 · 0 评论 -
MySQL-count
字段有索引的时候:效率count(*) ≈ count(1) > count(字段) > count(主键 id)count(*)这么快,因为它是按行累加,不是把全部拿出来再统计;count(1)是找叶子结点,在内存记录一个1,然后再统计二级索引树当然比主键索引树数据量小(主键索引的叶子结点带着整行数据),读进内存耗时更少,检索更快字段没索引的时候效率count(*) ≈ count(1) > count(主键 id) > count(字段)...原创 2021-07-24 22:46:37 · 158 阅读 · 1 评论 -
MySQL-分页
分页最普通的三种:第一种是最普通的分页,没有用索引,全表扫描select * from table limit 100000 10第二种分页是用上了主键索引,且前提保证主键自增且连续select * from table where id >100000 limit 10第三种就是优化的分页,select * from table1 t1 inner join (select id form table1 where order by name limit 100000,10) t2 on t原创 2021-07-23 09:28:58 · 158 阅读 · 0 评论 -
MySQL基本sql语句-阶段下
WHERE子句、LIKE子句、正则表达式、分组、排序、limit、比较运算符、子查询、连接原创 2020-10-31 16:43:20 · 116 阅读 · 0 评论 -
MySQL基本sql语句-阶段中
自动编号:auto_increment目的保证数据的唯一性,譬如设置id字段,auto_increment自动编号,且必须与主键一起使用。默认情况下,起始值为1,每次增量为1.主键:key/PRI每张数据表当中只有一个主键字段。(从而能够查找行记录)主键保证其唯一性,即不可以重复。not null唯一约束:unique key唯一约束可以用来保证记录的唯一性,即不可重复(重复会报错)唯一约束的字段可以是空值每张数据表中可以为多个唯一约束默认值:default当插入数据原创 2020-09-16 18:06:57 · 163 阅读 · 0 评论 -
MySQL基础sql语句-阶段上
MySQL基本语句规范关键字函数名——大写数据库名、表名、字段名——小写sql语句结束必须加分号——;#版本mysql -V#登录mysql -u_name -p_assword -P3306 -h_ost#修改提示符创建时修改mysql -u_name -p_assword -P3306 -h_ost --prompt \D日期 \d数据库 \h地址 \u用户进入后修改pr...原创 2020-03-17 11:22:19 · 163 阅读 · 0 评论