数据库速记
来源:互联网 发布:php递归算法经典实例 编辑:程序博客网 时间:2024/04/28 14:22
1. 第一类丢失更新:撤消一个事务时,把其它事务已提交的更新的数据覆盖了。
2. 脏读:一个事务读到另一个事务未提交的更新数据。
3. 幻读:一个事务执行两次查询,但第二次查询比第一次查询多出了一些数据行。
4. 不可重复读:一个事务两次读同一行数据,可是这两次读到的数据不一样。
5. 第二类丢失更新:这是不可重复读 中的特例,一个事务覆盖另一个事务已提交的更新数据。
隔离级别
脏读(Dirty Read)
不可重读(Unrepeatable read)
幻读(Phantom Read)
读操作未提交(Read Uncommitted)
可能
可能
可能
读操作已提交(Read Committed)
不可能
可能
可能
可重读(Repeatable Read)
不可能
不可能
可能
可串行化(Serializable)
不可能
不可能
不可能
1. 为查询缓存优化你的查询
2. EXPLAIN你的 SELECT 查询
3. 当只要一行数据时使用 LIMIT 1
4. 为搜索字段建索引
5. 在Join表的时候使用相当类型的例,并将其索引
6. 避免 SELECT *
7. 用join代替子查询
8. 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
ALTER TABLE <表名> ADD INDEX (<字段>);
5. 实践中如何优化MySQL
我当时是按以下四条依次回答的,他们四条从效果上第一条影响最大,后面越来越小。
① SQL语句及索引的优化 单列索引(主键索引,唯索引,普通索引)和组合索引
② 数据库表结构的优化
③ 系统配置的优化
④ 硬件的优化
6. 什么情况下设置了索引但无法使用
① 以“%”开头的LIKE语句,模糊匹配
② OR语句前后没有同时使用索引
③ 数据类型出现隐式转化(如varchar不加单引号的话可能会自动转换为int型)
8. 索引的底层实现原理和优化
1.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE`table_name` ADD PRIMARY KEY ( `column` )
2.添加UNIQUE(唯一索引) mysql>ALTERTABLE `table_name` ADD UNIQUE ( `column` )
3.添加INDEX(普通索引) mysql>ALTERTABLE `table_name` ADD INDEX index_name ( `column` )
4.添加FULLTEXT(全文索引) mysql>ALTERTABLE `table_name` ADD FULLTEXT ( `column`)
5.添加多列索引 mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`,`column2`, `column3` )
Linux: 动态进程 top –p 123 树形进程pstree 端口 netstat -apn | grep 80终结进程 kill-9 123
- 数据库速记
- 数据库范式速记
- 速记
- C#速记
- Screen速记
- 速记单
- 编程速记
- duilib速记
- C#速记
- 考前速记
- websocket速记
- html速记
- redis 速记
- OpenMesh速记
- 分布式速记
- freemarker 速记
- 生肖速记
- 知识点速记
- 问题解决1@hdfs实际数据和备份数据不一致
- Mybatis小结之动态sql
- JavaMail使用阿里云企业版邮箱发送邮件
- 安卓离线打包
- Android Notification 手机系统横幅弹出提示框调用
- 数据库速记
- spring mvc 配置(xml配置详解)
- 数据结构实验之链表三:链表的逆置
- Hadoop集群中sqoop的安装使用
- Mysql数据库、表、字段常用操作
- C++关键字 explicit
- 在Ubuntu系统下arm-none-linux-gnueabi-gcc: not found 的解决办法
- 刷题的日常[Leetcode]——15)3 Sum
- hadoop HA