大道至简:数据库设计的核心原则

数据库设计,不得不承认,有很多专业化的理论知识,但是对于初学者来说,只需要大道至简的原则就可以了。

能不重复的就不重复,太重复的就拆开,使用指定数据做识别。

外键的设计

在MySQL中,一个数据库中,外键的名称是唯一的,也就是说,在所有表中的外键,每一个外键都不能重名

使用JDBC的时候,提高insert数据的速度

我们需要使用JDBC,向Mysql数据库中批量插入数据,一条条插入太慢了,我们需要提高其性能。

注意点:直接查阅官方文档!我们需要的是学会使用别人做好的成品工具。事实上,很多时候业务代码都是直接使用现成的工具,这样更高效,但是底层知识你必须懂,才能理解这些工具。

Insert语句速度优化

这里,我们只需要选择加载文件的解决方案,这个比较适合我自己的情况。

首先,在本地服务器,我们得设置一个参数secure-file-priv,将其设置为secure-file-priv =
Mysql导入文件提示

然后,我们就可以将文件导入到数据库表的某些列了,我们还需要设置不在文件中的列,比如时间日期,我们需要更多地理解load data infile的选项。
Load Data Infile语法

# SET子句可以被用于提供不是来源于输入文件的值。以下语句把column3设置为当前的日期和时间:LOAD DATA INFILE 'file.txt'INTO TABLE t1(column1, column2)SET column3 = CURRENT_TIMESTAMP,column4 = ……;

数据库设计的核心原则 外键的设计 提高插入数据速度相关推荐

  1. 数据库中主键和外键的设计原则

    來源:http://www.cnblogs.com/deng02/archive/2009/02/26/1398462.html 主键和外键是把多个表组织为一个有效的关系数据库的粘合剂.主键和外键的设 ...

  2. 为什么数据库不应该使用外键

    为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点.对具体实现造成的影响 ...

  3. 为什么数据库不应该使用外键?

    当我们想要持久化地存储数据时,使用关系型数据库往往都是最稳妥的选择,这不仅因为今天的关系型数据库种类非常丰富并且稳定,还因为不同社区对关系型数据库的支持都非常完备. 我们在前面的文章中曾经分析过 为什 ...

  4. 数据库建表需要外键约束吗?

    建立外键的好处:  1) 由数据库保证数据完整性,比程序保证完整性更可靠,  多应用时(如有应用A,B,C他们之间的实体存在关联关系),由程序来保证数据完整性变得困难  2) 外键约束使得数据库的ER ...

  5. 实际开发中,是否会在数据库表中设置外键?

    本科学习数据库的时候,书上明确的写了对于多对多关系必须要创建外键,可是最近在跟师兄做一个B/S架构的项目,发现所设计的数据库表虽然是多对多关系但并没有要求外键,查了一下之后才发现目前的大型系统中(尤其 ...

  6. 数据库建表需要外键约束?

    数据库建表需要外键约束吗? 数据库建表时一定要设置外键约束关系吗?

  7. mysql一对一外键约束_MySQL数据库之-foreign key 外键(一对多、多对多、一对一)、修改表、复制表...

    我们在同一数据库创建的表时候,很多时候会出现相同数据的冗余问题,也就是说几个id会有一个或者同n个相同字段,这样就导致数据表结构数据重复冗余, 冗余还无所谓,关键是如果我要改其中一个相同的字段信息,其 ...

  8. mysql设置主键自增长,插入数据时报错,解决

    mysql设置主键自增长,插入数据时报错,解决 创建一个可以自增长的表 create table user ( sid int not null primary key auto_inrement, ...

  9. django-admin 设计User外键,设计model

    设置外键 class profile_user(AbstractBaseUser, PermissionsMixin):company = models.ForeignKey(Company, def ...

最新文章

  1. 利用JS中window.showModalDialog()详解
  2. 字符串排序 java_java字符串排序
  3. 一文教你用java实现儿时的超级玛丽游戏
  4. 运行Android Studio总是未发现设备
  5. sqlmap简单用法
  6. React源码之 从开始说起
  7. java中的@param参数_java – @RequestParam在Spring MVC中处理可选参数
  8. CSS3动画框架 Animate.css
  9. 《剑指offer》面试题24——二叉搜索树的后序遍历序列(C++)
  10. redis安装部署(1)
  11. Wireshark使用教程用户手册
  12. 史上最全的数据链路层基础知识详解
  13. 内存映射图( 网络IO和磁盘IO详解)
  14. [HAOI2008] 排名系统
  15. 智行订票系统需求分析报告
  16. 清空 通讯录 android,安卓 通讯录 清除数据恢复
  17. 【MySQL基础】什么是MySQL约束?什么是主键约束?
  18. 中国医科大学2021年9月《急危重症护理学》作业考核试题
  19. 计算机怎么把安全设置降低,如何设置浏览器的安全级别,怎么降低浏览器安全级别...
  20. 上海亚商投顾:成交量不足万亿,指数止步四连阳

热门文章

  1. 不要怂,就是GAN (生成式对抗网络) (五):无约束条件的 GAN 代码与网络的 Graph...
  2. 微软Team Foundation Service 的Scrum模板中的Feature和Backlog Items 的区别【转载】
  3. 如何利用C#编写网页投票器程序 如何使用代理来投票 代理IP来投票
  4. 伙伴分配器的一个极简实现
  5. 读《深入分析Java Web技术内幕》
  6. 制图折断线_【机械制图】机械设计中的尺寸标注,看懂复杂机械图纸!
  7. C语言switch中break的作用,C语言中switch...case语句中break的重要性
  8. java类编写sql_用JavaBean编写SQL Server数据库连接类
  9. No module named ‘skimage.metrics‘在Anaconda3中的解决方法
  10. 02-对图像进行边界填充