数据库速记

来源:互联网 发布: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

 

0 0
原创粉丝点击