数据库相关
数据库事务:一个程序执行单元
ACID特性:
atomicity原子性:事务的所有操作在数据库中要么全部反应,要么全部不反应
consistency一致性:隔离(无并发)执行事务时保持数据库的一致性
isolation隔离性:每个事务感觉不到其他事物在并发地执行
durability持久性:一个事务完成后,保证对数据库的修改是永久的
数据库查询优化:怎么做?建立索引,索引的类型?B+树和Hash? 有关排序用哪个?why?
数据库查询优化方面:
1 SQL查询语句的重写,对于一个查询可以用多种查询语句实现,但不同查询语句的数据库执行计划是不同的,一旦不能够使
用索引或造成较大的内存占用会导致性能下降,因此需要对查询语句进行重写优化,最典型的例子就是not in语句使用外连
接方式实现来进行优化
2 创建合理的索引结构,根据查询语句的中查询条件,在关系表上建立相应的索引,如B+树索引和hash索引
3 修改程序业务逻辑,有些功能如果使用SQL语句实现,不但SQL语句复杂,还将导致数据库的负担增加,因此可以将有些数据
操作的业务逻辑放到应用层进行实现,就是通过java编程实现
4 修改数据库服务器相关参数,优化服务器性能
索引的类型:
顺序索引:基于值的顺序排序
散列索引:由Hash函数决定一个值对应的地址
索引方法 当创建索引时指定索引类型,BTREE 或 HASH。
B+树:一百万的搜索码一次查询只要访问log50(1000 000)=4个结点,最多读4个磁盘块,一般是一个结点占一个磁盘块
Hash:搜索码到存储地址的映射
B+树:范围查询
Hash:等值查询 (包括= <> 和in)<>是不相等
in:测试元组是否是集合中的成员
select a from A
where a in (select a from B)
散列索引是根据HASH算法来构建的索引,所以检索速度很快,但不能范围查询。
Hash 索引遇到大量Hash值相等的情况后性能并不一定就会比B-Tree索引高
数据库并发,缓存机制的理解 用户1000个,数据库200个连接?。。。(应该是指要实现并发地执行SQL语句)
定义表索引的类型。
Normal NORMAL 索引是最基本的索引,并没有限制,如唯一性。
Unique UNIQUE 索引和 NORMAL 索引一样,只有一个差异 - 索引列的全部值必须只出现一次。
Full Text FULL TEXT 索引用于 MySQL 全文搜索。
数据库视图的概念:视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口 ,通过它可以看到感兴趣的数据。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。