如果要选择一门程序员必备的技能,那答案无疑是数据库,而MySQL是首选。很多企业在面试过程中会提问MySQL数据库表设计要注意什么,接下来小千就给大家讲解一下。

MySQL相较于MSSQL SERVER和Oracle,是一款功能强大的小型数据库,能很好的满足千万级数据量的项目需要。注意,MySQL本身是没有可视化界面的,在Windows系统中你可以通过dos命令进行简单的连接和查看,在Linux系统下可以通过MySQL的命令进行连接查看。

MySQL支持很多种不同的数据类型,并且选择正确的数据类型对于获得高性能至关重要。在设计MySQL表时,你需要注意五点:

1、一定要设计主键

主键,又叫主关键字,用来唯一地标识表中的某一条记录。它能保证实体的完整性,加快数据库的操作速度,这一点很重要。主键使用自增最佳,这样每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。如果不是自增主键,那么可能会在中间插入,就会引发页的分裂,产生很多表碎片。

2、字段命名尽量避开保留字

在给字段命名的时候,要尽量避开关键字,以免出了问题而不好查找。虽然在以关键字命名的字段上加’'可以不再报错,但保险起见,就不要这么设计。

3、表名长度尽可能短

表名称不要太长,Oracle限制字符为30个,如果有转数据库的需要,表名太长无疑会增加转换的工作量。

4、尽可能不使用default null

NULL值不能进行索引,影响索引的统计信息,影响优化器的判断。复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。

5、时间戳Timestamp

每个表的最后都加一个create_time为时间戳类型timestamp的字段,该方式对于调试阶段非常有帮助。

6、不要直接存储图片、音频、视频等大容量内容

MySQL中有两个字段类型被用来设计存放大容量文件:TEXT和BLOB类型。但MySQL内存临时表并不支持这样的大数据类型,如果查询中包含这样的数据,在排序等操作时,就不能使用内存临时表,必须使用磁盘临时表进行,导致查询效率缓慢。同时因为数据内容比较大,就会造成binlog内容比较多,导致主从同步效率问题。

了解更多数据库优化知识,只要你的技术能够满足企业的需要,你就能拿到满意的薪资。如果你真的想要学好编程开发,可以选择专业的学习,让自己更好的进入编程行业。

本文来自千锋教育,转载请注明出处。

程序员面试之MySQL数据库表的设计相关推荐

  1. 后端程序员必备:mysql数据库相关流程图/原理图芬芬细雨

    前言 整理了一些Mysql数据库相关流程图/原理图,做一下笔记,大家一起学习. 1.mysql主从复制原理图 mysql主从复制原理是大厂后端的高频面试题,了解mysql主从复制原理非常有必要. 主从 ...

  2. Mysql数据库表如何设计?

    三范式 三范式是一种数据库设计原则,要求将数据分解成更小.更简单的表,以减少数据冗余和提高数据一致性,同时保证每个表都符合第一范式.第二范式和第三范式的要求. 1. 代码实现 假设我们需要设计一个简单 ...

  3. MySQL 数据库表的设计

    数据库设计步骤: 收集信息--了解本项目的功能--图书管理系统.借书,换书 标识实体--标识项目中的客观对象--图书.借阅者.借书记录...... 标识实体属性:图书信息--图书id.书名.价格... ...

  4. MySQL程序员面试笔试宝典pdf_数据库程序员面试笔试宝典

    前言 上篇 面试笔试经验技巧篇 第1章 求职经验分享2 1.1 踩别人没有踩过的坑,走别人没有走过的路2 1.2 一只小白成长为DBA的心路历程3 1.3 一个热衷于SQL优化的DBA成长经历3 第2 ...

  5. 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表……

    文章来源:墨天轮社区 https://www.modb.pro/db/26343 摘要:墨天轮数据库周刊第28期发布啦,每周1次推送本周数据库相关热门资讯.精选文章.干货文档.本周分享 开发者最喜爱的 ...

  6. 金三银四求职季,程序员面试必备——数据库篇

    我们身处一个技术变革的时代,随着分布式.云计算.大数据等技术的飞速发展,各种数据库百花齐放.它们在具体功能和使用场景上各有千秋,在实现细节上也不尽相同,但是在工作原理上又有着诸多共通性和相似性. 跳槽 ...

  7. mysql router是什么_数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作...

    摘要:墨天轮数据库周刊第28期发布啦,每周1次推送本周数据库相关热门资讯.精选文章.干货文档.本周分享 开发者最喜爱的数据库是什么?阿里云脱口秀爆聊程序员转型:MySQL update误操作后进行数据 ...

  8. 《MySQL数据库原理、设计与应用》课后习题及答案 黑马程序员编著

    <MySQL数据库原理.设计与应用>课后习题及答案 黑马程序员编著 答案有文档形式,但是csdn必须要下载,,需要的人就去那里下载吧.<MySQL数据库原理.设计与应用>课后习 ...

  9. 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表

    创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...

最新文章

  1. python 导包语法 import package as name 和 from package import name 的区别
  2. 【python笔记】python模块 datatime模块
  3. aftool提示15天未更新_微信版本更新至7.0.15 视频号新增3种功能
  4. PermGen space处理方法1
  5. libcurl上传文件
  6. API文档自动生成,Swagger的配置
  7. 程序员的需要掌握的数学知识
  8. 全国青少年软件编程等级考试标准(正式级)
  9. 【RX解码MIPI输出】XS9922B 4通道模拟复合视频解码芯片 功能对标TP2815
  10. 关于架构师:角色、能力和挑战
  11. 【CC2640R2F】香瓜CC2640R2F之LCD
  12. 【报告分享】2021年小红书内容营销趋势洞察-千瓜(附下载)
  13. IM方案技术调研报告
  14. 基于多相滤波器的数字信道化算法详解(Python, Verilog代码已开源)
  15. win7连上WIFI但上不去网
  16. 让IE浏览器支持HTML5标准的方法
  17. mybatis-plus设置id自增,插入数据。
  18. 物联网“遇上”云原生,会擦出怎样的火花?
  19. Vue3 初探 ref、reactive 、及改变数组的值
  20. 让微积分穿梭于工作与学习之间(13):带圆弧多边形的面积计算(上)

热门文章

  1. 实录分享 | 计算未来轻沙龙:深度学习工具专场(PPT下载)
  2. 码牛安卓移动互联网高级开发正式课
  3. web第二节2020.5.11
  4. 江苏python工资一般多少_会计行业一般工资多少?
  5. java虚拟机加载类_java虚拟机之类加载机制(一)
  6. 【身份认证及权限控制一】单点登录
  7. JAVA——仿Linux命令行文件管理系统命令的简单实现
  8. 鸿蒙系统8xmax,华为8月9日发布基于安卓10.0全新系统:自主鸿蒙会同台亮相
  9. 【学习笔记】opencv的python接口 几何变换
  10. hive 1.1.1 Specified key was too long; max key length is 767 bytes