
数据库
you&ok
这个作者很懒,什么都没留下…
展开
-
SQL 优化的一般步骤
SQL 优化的一般步骤是什么,怎么看执行计划,如何理解其中各个字段的含义。 查看慢日志(show [session|gobal] status ),定位慢查询,查看慢查询执行计划 根据执行计划确认优化方案 Explain sql select_type:表示select类型。常见的取值有SIMPLE(简单表,即不使用连接或者子查询)、PRIMARY(主查询,即外层的查询)、UNION(union中的第二个或者后面的查询语句)、SUBQUERY(子查询中的第一个SELECT)等。talbe:输出结果集的表原创 2020-09-28 17:40:17 · 561 阅读 · 0 评论 -
表字段为什么建议不存null值?
null值会占用更多的字节,且会在程序中造成很多与预期不符的情况。在 where 子句中对字段进行 null 值判断,将导致引擎放弃使用索引而进行全表扫描原创 2020-09-28 17:17:36 · 271 阅读 · 0 评论 -
基于MySql的InnoDB引擎,可以使用以下方法来实现加锁
基于MySql的InnoDB引擎,可以使用以下方法来实现加锁操作:表结构:CREATE TABLE `methodLock` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `method_name` varchar(64) NOT NULL DEFAULT '' COMMENT '锁定的方法名', `desc` varchar(1024) NOT NULL DEFAULT '备注信息', `update_time` tim原创 2020-09-28 17:06:17 · 184 阅读 · 0 评论 -
视图
为什么要使用视图?什么是视图?为了提高复杂SQL语句的复用性和表操作的安全性,MySQL数据库管理系统提供了视图特性。所谓视图,本质上是一种虚拟表,在物理上是不存在的,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以储存的数据值形式存在。行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。视图使开发者只关心感兴趣的某些特定数据和所负责的特定任务,只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高了数据库中数据的安全性。视图的特点如原创 2020-09-28 17:01:36 · 155 阅读 · 0 评论 -
事务
在数据库操作中,一项事务(Transaction)是由一条或多条操作数据库的 SQL 语句组成的一个不可分割的工作单元,这些操作要么都完成,要么都取消。接下来将围绕事务的特性、并发问题以及隔离级别进行讲解。事务的特性事务的定义很严格,它必须同时满足四个特性,即原子性、一致性、隔离性和持久性,也就是人们俗称的 ACID 特性,具体如下。1)原子性(Atomic)表示将事务中所进行的操作捆绑成一个不可分割的单元,即对事务所进行的数据修改等操作,要么全部执行,要么全都不执行。2)一致性(Con原创 2020-09-27 19:12:29 · 301 阅读 · 0 评论 -
三大范式
一、第一范式1NF是对属性的原子性,要求属性具有原子性,不可再分解;二、第二范式2NF是对记录的惟一性,要求记录有惟一标识,即实体的惟一性,即不存在部分依赖;三、第三范式3NF是对字段的冗余性,要求任何字段不能由其他字段派生出来,它要求字段没有冗余,即不存在传递依赖;第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。简而言之,第一范式就是无重复的域。原创 2020-09-27 19:03:00 · 281 阅读 · 0 评论 -
prepareStatement语句
JDBC中的——PreparedStatement 预编译原理prepareStatement语句有三大好处:Statement.executeUpdate("INSERT INTO tb1_students (name,age,sex,address) VALUES('"+var1+"','"+var2+"',"+var3+",'"+var4+"')"); prepareStatement= connection.prepareStatement("INSERT INTO tb1_stud原创 2020-09-27 17:37:57 · 365 阅读 · 0 评论 -
MySQL 索引、存储引擎、锁
存储引擎存储引擎Storage engine:MySQL中的数据、索引以及其他对象是如何存储的,是一套文件系统的实现。MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL原创 2020-09-27 17:29:53 · 371 阅读 · 0 评论 -
mysql in和exists差别
mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询。一直大家都认为exists比in语句的效率要高,这种说法其实是不准确的。这个是要区分环境的。 如果查询的两个表大小相当,那么用in和exists差别不大。 如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in: not in 和not exists如果查询语句使用了not ...原创 2020-09-23 19:08:49 · 147 阅读 · 0 评论 -
DBLink构建
DBLink构建database link是建立一个数据库到另一个数据库的路径的对象,通过database link可以允许查询远程表,我理解可以算作一种分布式数据库的用法。database link是单向连接,既然它是一种对象,那自然可以在xxx_objects表中查询到相关的信息。建立database link前需要明确几个事情:1、确认从建立方的server可以访问远程数据库。 2、需要在建立方的tnsnames中配置远程数据库连接串。 3、只有在服务端配置的连接才能在dblink中.原创 2020-09-23 19:07:28 · 252 阅读 · 0 评论