数据库
HelloWorld丶丶
这个作者很懒,什么都没留下…
展开
-
数据库中的范式有哪些?
6种范式:第一范式(1NF):数据库中的表的所有字段值都是不可分割的原子数据项。 第二范式(2NF):第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。第三范式(3NF):第三范式需要确保数据表中的每一列数据...转载 2018-02-26 12:26:54 · 1337 阅读 · 0 评论 -
如何优化SQL语句
SQL语句优化主要体现在select语句时尽量避免全表扫描,而使用索引查询(避免索引失效)。 SQL语句优化转载 2018-03-06 12:57:55 · 336 阅读 · 0 评论 -
索引失效
如果条件中有or,即使其中有条件带索引也不会使用(这就是为什么尽量少使用or的原因)(注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引)对于多列索引,不是使用的第一部分(不符合最左前缀原则),则不会使用索引,例子如下: 如果select * from key1=1 and key2= 2;则建立组合索引(key1,key2);select * from key1 =...转载 2018-03-06 12:41:06 · 311 阅读 · 0 评论 -
数据库事务的四大特性和事务的隔离级别
数据库事务的四大特性(ACID)原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。 拿转账来说,假设用户...转载 2018-02-25 21:37:37 · 244 阅读 · 0 评论 -
数据库索引的优缺点
数据库索引的优点通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。数据库索引的缺点创建索...转载 2018-02-25 20:56:18 · 349 阅读 · 0 评论 -
什么是数据库索引,是怎么工作的?
我们通过一个简单的例子来开始教程,解释为什么我们需要数据库索引。假设我们有一个数据库表 Employee, 这个表有三个字段(列)分别是 Employee_Name、Employee_Age 和Employee_Address。假设表Employee 有上千行数据。现在假设我们要从这个表中查找出所有名字是‘Jesus’的雇员信息。我们决定使用下面的查询语句:SELECT * FROM Em...转载 2018-02-25 19:48:46 · 5764 阅读 · 11 评论 -
常见的数据库有哪些?
常见的数据库 关系型数据库 MySQLSQL ServerOracleSybaseDB2非关系型数据库(NoSQL) RedisRedis Redis是一种高性能的key-value数据库,它支持存储的value类型比Memcached更多,包括string(字符串)、list(链表)、set(集合)、zset(有序集合)、hash(哈希类型),可以将存储在内存中的键值对数据...原创 2018-02-25 17:06:57 · 3806 阅读 · 0 评论 -
数据库索引的实现为什么用B+树而不用B树
http://blog.csdn.net/fei33423/article/details/48469899转载 2018-03-01 22:15:37 · 4298 阅读 · 0 评论 -
MyISAM和InnoDB引擎的区别
区别构造上的区别:MyISAM在磁盘上存储成三个文件,其中.frm文件存储表定义;.MYD (MYData)为数据文件;.MYI (MYIndex)为索引文件。而Innodb是由.frm文件、表空间(分为独立表空间或者共享表空间)和日志文件(redo log)组成。事务上的区别:MyISAM不支持事务,而InnoDB支持事务。锁上的区别:MyISAM使用的是表锁;而InnoDB使用的行锁...转载 2018-02-26 17:16:43 · 291 阅读 · 0 评论 -
Redis和MySQL的区别
MySQL是关系型数据库,是持久化存储的,查询检索的话,会涉及到磁盘IO操作,为了提高性能,可以使用缓存技术,而memcached就是内存数据库,数据存储在内存中(当然也可以进行持久化存储),可以用作缓存数据库。用户首先去memcached查询数据,如果未查询到(即缓存未命中),才去MySQL中查询数据,查询到的数据会更新到缓存数据库中,提供给下次可能进行的查询。提高了数据查询方面的性能。...原创 2018-02-26 16:50:19 · 13118 阅读 · 0 评论 -
数据库的分页查询语句
MySQL中的分页查询语句为SELECT * FROM table LIMIT [offset,] rows;上面的查询语句含义为:从offset偏移量开始,最多查询rows条记录。初始记录行的偏移量为0而不是1。当offset省略时,默认offset为0。例子:SELECT * FROM table LIMIT 5;//从0偏移量(第一条记录)开始,最多(用最多是因为有记录不足...原创 2018-02-26 15:58:32 · 247 阅读 · 0 评论 -
在什么情况下适合建立索引
在经常需要搜索的列上,可以加快搜索的速度;在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;在经常用于连接两张表的列上,这些列主要是一些外键,可以加快连接的速度;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;在经常使用在WHERE子句中的列上面创建...原创 2018-02-26 15:44:32 · 2578 阅读 · 0 评论 -
数据库中的索引的结构
索引往往以索引文件的形式存储在磁盘上,这样的话,索引查找过程就要产生磁盘I/O消耗。二叉树相比于B(B+)树而言,树的深度更深,索引查找过程需要更多次的磁盘I/O,所以使用B(B+)作为索引的数据结构,性能更好。索引的数据结构有B树、B+树、R树、散列表MySQL中索引背后的数据结构为B+树,其中MyISAM引擎的索引文件和数据文件是分离的,而InnoDB引擎的数据文件是按B+树的数据结构组...原创 2018-02-26 15:38:54 · 518 阅读 · 0 评论 -
MySQL的优化
首先,需要定位需要优化的部分,有如下方法: 1. Show命令:我们可以通过show命令查看MySQL状态及变量,找到系统的瓶颈。 2. 慢查询日志:将查询时间超过指定秒数的SQL记录在日志中,可以定位到需要优化的SQL。 3. EXPLAIN分析:使用 EXPLAIN 关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。这可以帮你分析你的查询语句或是表结构...转载 2018-03-06 13:39:14 · 305 阅读 · 0 评论