在担任数据库设计师的角色中,寻找最有效的方式来组织架构,表和列。与调整应用程序代码时一样,您可以最大程度地减少I / O,将相关项目放在一起,并提前进行计划,以使性能随着数据量的增加而保持较高水平。从高效的数据库设计开始,团队成员可以更轻松地编写高性能的应用程序代码,并使数据库很可能随着应用程序的发展和重写而持久。
优化数据库结构
- 优化数据大小
- 设计表以最小化它们在磁盘上的空间。通过减少写入磁盘和从磁盘读取的数据量,这可以带来巨大的改进。较小的表通常在查询执行期间主动处理其内容时需要较少的主内存。表数据的任何空间减少也会导致较小的索引,可以更快地对其进行处理。MySQL支持许多不同的存储引擎(表类型)和行格式。对于每个表,您可以决定使用哪种
- 优化MySQL数据类型
- 优化数值数据对于可以表示为字符串或数字的唯一ID或其他值,与字符串列相比,首选数字列。由于大数值可以比相应字符串存储在更少的字节中,因此它传输速度更快,并且占用更少的内存来进行比较。如果使用数字数据,则在许多情况下(通过实时连接)从数据库访问信息的访问要比访问文本文件更快。数据库中的信息可能以比文本
- 针对多个表进行优化
- 保持单个查询快速的某些技术涉及在多个表之间拆分数据。当表的数量达到数千甚至几百万时,处理所有这些表的开销将成为新的性能考虑因素。MySQL如何打开和关闭表当执行mysqladmin status命令时,应该看到类似以下的内容:Uptime: 426 Running threads: 1 Questi
- MySQL中内部临时表的使用
- 在某些情况下,服务器在处理语句时会创建内部临时表。用户无法直接控制何时发生这种情况。服务器在以下条件下创建临时表:UNION语句的评估,但稍后会有一些例外。评估某些视图,例如使用TEMPTABLE算法UNION或聚合的视图。派生表的评估(请参见“派生表”)。公用表表达式的求值(请参见“ WITH(公
- 数据表的限制
- MySQL对数据库的数量没有限制。基础文件系统可能对目录数量有所限制。MySQL对表的数量没有限制。基础文件系统可能会对表示表的文件数量有所限制。各个存储引擎可能会强加特定于引擎的约束。InnoDB最多允许40亿张桌子。表格大小限制MySQL数据库的有效最大表大小通常由操作系统对文件大小的限制来确定