标签:size 设计 参考 独立 run 改善 grant 间接 bit
基础概念数据库事务:是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全做,要么全不做,是一个不可分割的工作单元。
事务特点:
比较 | truncate | delete |
---|---|---|
相同点 | 删除表中的全部行 | 不带where字句删除表中的全部行 |
相同点 | 删除记录,不删除表定义 | 删除记录,不删除表定义 |
不同点 | truncate比delete速度快,且使用系统和事务日志资源少 | delete每删除一行,并在事务日志中为所删除的每行记录一项 |
不同点 | truncate正常情况返回0,中断什么都不返回 | delete返回删除的行记录数 |
作用:
优点:
缺点:
适合创建索引:
不适合创建索引:
对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。
对于那些只有很少数据值(唯一性差)的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。
对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。
DDL(Data Definition Language):数据定义语言,定义对数据库对象(库、表、列、索引)的操作。代表指令:CREATE、DROP、ALTER、RENAME、 TRUNCATE等
DML(Data Manipulation Language):数据操作语言,定义对数据库记录的操作。代表指令:INSERT、DELETE、UPDATE、SELECT等
存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种存储引擎。
MyISAM
,InnoDB
,Memory
三个引擎即可,区别就是各自的Feature
不一样,标?
的标识该引擎支持对应的特性。支持的索引如下:
存储过程是一个预编译的SQL 语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL ,使用存储过程比单纯SQL 语句执行要快。可以用一个命令对象(call)来调用存储过程。
优点:
缺点:
连接方式:
连接方式说明:
范式:
参考资料:
实际使用:三大范式只是一般设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求和性能,需求>性能>表结构。所以不能一味的去追求范式建立数据库
SQL查询中各个关键字的执行先后顺序:
from > on> join > where > group by > with > having > select > distinct > order by > limit
参考资料:《MySQL技术内幕:SQL编程 第三章查询处理》
问题分析:从1000万这个数字可以定位到考察数据量特别大的情况下如何提升查询效率。
数据库设计方面
数据库I/O方面
在SQL语句方面
preparedStatement
减少查询次数标签:size 设计 参考 独立 run 改善 grant 间接 bit
原文地址:http://blog.51cto.com/aiilive/2309361