MySQL数据库设计经验分享

合集下载

数据库及表的创建心得

数据库及表的创建心得

数据库及表的创建心得一、引言数据库是存储、检索和管理数据的重要工具,而表是数据库中组织和存储数据的基本单元。

在实际的数据库设计与开发工作中,创建数据库及表是首要任务之一。

在这个过程中,我经过实践和总结,积累了一些创建数据库及表的经验和心得。

本文将就此进行详细探讨。

二、创建数据库2.1 数据库的选择在创建数据库之前,首先要确定使用什么数据库管理系统。

市面上有很多种不同的数据库系统,如MySQL、Oracle、SQL Server等。

选取适合自身需求的数据库系统非常重要。

不同的数据库系统各自有其特点和优势,比如MySQL适用于大部分中小型项目,Oracle适用于大型企业级项目。

根据实际需求和项目的规模,选择合适的数据库系统是关键。

2.2 数据库命名规范数据库的命名规范直接关系到后续的维护和管理。

通常,数据库的命名应该能够清晰地表达其所包含的内容。

命名应具备可读性和可维护性,避免使用过于简单和含糊的名字。

同时,数据库的命名应该符合一定的命名规范,比如使用全小写字母、下划线连接不同的单词等。

2.3 数据库字符集和校对规则在创建数据库时,字符集和校对规则的设置是非常重要的。

字符集决定了数据库中可以使用的字符种类,包括各种语言和特殊字符。

而校对规则决定了对这些字符进行排序和比较的规则。

一般来说,选择常用的字符集和校对规则即可满足大部分需求,但对于特殊需求,可以根据实际情况进行定制。

三、创建表3.1 表的设计原则在创建表之前,需要进行详细的表设计。

表的设计原则是关系数据库设计的基石,良好的表设计能够提高数据库的性能和扩展性。

在进行表设计时,应该遵循以下原则: 1. 实体和属性之间的一致性:一个表应该只包含一个实体,表中的每个列都应该定义一个属性。

2. 消除冗余数据:避免在多个表中存储相同的数据,而是通过关联等方式进行引用。

3. 数据类型选择合理:对每个列选择合适的数据类型,既能满足存储需求,又能节省存储空间。

数据库实验报告心得

数据库实验报告心得

数据库实验报告心得引言:作为计算机科学与技术专业的学生,数据库实验是我们必不可少的一门重要课程。

通过此次实验,我加深了对数据库的理解,并获得了一些宝贵的经验。

在这篇文章中,我将分享我的数据库实验报告心得,总结我在实验中遇到的挑战和收获。

一、实验背景与目的:本次实验以MySQL为基础,旨在通过实践操作来学习数据库的概念、设计与管理。

实验内容涵盖了数据库创建、表设计、数据插入、检索与更新等方面的操作。

通过这些实验,我们能够更好地掌握数据库的基本操作和原理,为今后的实际应用打下基础。

二、实验过程与挑战:在实验开始之前,我首先对MySQL的基本语法进行了复习,并熟悉了实验所需的相关命令。

接下来,我按照实验指导书的提示,逐步完成了实验内容。

首先,我需要创建数据库和表。

在创建数据库时,我遇到了一些问题。

一开始,我由于不小心写错了命令,导致无法成功创建数据库。

通过查阅相关文档和向同学请教,我发现了错误,并及时进行了修正。

在表的设计和创建过程中,我注意到了表的字段类型与数据类型的对应关系,并合理地选择了合适的数据类型。

在数据插入阶段,我遇到了一些数据约束和完整性方面的问题。

当我尝试插入一些数据时,数据库提示我出现了一些冲突。

通过仔细检查数据表的约束条件和数据字段的类型,我发现了问题的根源,并进行了修正。

这次实验让我深刻认识到了数据的一致性和完整性的重要性。

在检索与更新数据的过程中,我进一步了解了SQL语句的使用。

通过运用各种条件查询语句和更新语句,我能够根据自己的需求对数据库进行灵活的操作。

这让我体会到了数据库的强大功能和灵活性,也激发了我进一步深入学习数据库的兴趣。

三、实验收获与体会:通过这次数据库实验,我不仅仅是学习了具体的数据库操作技巧,更重要的是培养了我对数据库设计和管理的思维方式和能力。

首先,这次实验让我深刻理解了数据库的重要性。

数据库是现代信息管理的关键技术之一,几乎在各个行业都有广泛应用。

掌握数据库操作技巧,具备良好的数据管理能力,将有助于我在未来的职业发展中更好地与大数据时代同步。

mysql数据库设计总结

mysql数据库设计总结

mysql数据库设计总结设计一个高效的MySQL数据库需要考虑许多因素,包括数据结构、索引、查询优化、存储引擎选择、安全性等。

以下是一些关键的MySQL数据库设计总结:1. 需求分析:在开始设计之前,理解应用程序的需求是至关重要的。

这包括处理的数据类型、查询需求、性能要求、安全性需求等。

2. 数据结构:设计合适的数据表结构,包括选择合适的数据类型,考虑是否需要使用枚举或集合类型。

规范化:确保数据完整性和减少数据冗余。

3. 索引:索引是提高查询性能的关键。

为经常用于搜索、排序和连接的列创建索引。

避免过度索引,因为它们会增加写操作的负担。

4. 查询优化:优化查询语句,避免全表扫描。

使用`EXPLAIN`来查看查询的执行计划。

5. 存储引擎:根据需求选择合适的存储引擎,如InnoDB或MyISAM。

InnoDB支持事务处理和行级锁定,而MyISAM可能在某些读密集型场景中表现更好。

6. 安全性:限制对数据库的访问,只允许必要的用户和应用程序访问。

使用强密码,并定期更改。

定期备份数据。

7. 备份与恢复:设计一个可靠的备份策略,以防数据丢失。

了解如何从备份中恢复数据。

8. 监控和维护:使用工具监控数据库性能,如`MySQLTuner`。

定期维护数据库,如优化表(`OPTIMIZE TABLE`)和修复表(`REPAIR TABLE`)。

9. 扩展性:设计数据库时考虑到未来的扩展性,如分区、分片或读写分离。

10. 文档化:为数据库设计、表结构、索引和其他关键决策编写文档,以便于未来的维护和理解。

11. 测试:在实际部署之前,在测试环境中对数据库进行彻底的测试,确保其性能和稳定性满足要求。

12. 使用数据库管理工具:如Navicat, DBeaver, Workbench等工具可以帮助更高效地管理MySQL数据库。

13. 考虑使用缓存:如Redis或Memcached,以减少对数据库的直接访问,特别是在读密集型场景中。

mysql心得体会

mysql心得体会

mysql心得体会《MySQL 心得体会》在当今数字化的时代,数据的管理和处理变得至关重要。

作为一名与数据打交道的从业者,我在工作中频繁接触到 MySQL 数据库,并积累了一些宝贵的心得体会。

MySQL 是一个开源的关系型数据库管理系统,因其易用性、性能和广泛的社区支持而备受青睐。

它在众多应用场景中发挥着关键作用,从简单的 Web 应用到复杂的企业级系统。

刚开始接触 MySQL 时,我被它丰富的功能和多样的操作命令所吸引。

创建数据库、表,插入、查询、更新和删除数据,这些基本操作看似简单,但要做到熟练和准确却需要不断的实践。

就拿创建表来说,不仅要考虑字段的数据类型、长度,还要合理设置主键、索引等,以提高数据的存储效率和查询性能。

在实际应用中,我深刻体会到了索引的重要性。

合适的索引可以大大提高查询速度,减少数据库的响应时间。

然而,过度使用索引或者创建不合理的索引也可能会带来负面效果,比如增加数据插入和更新的开销。

因此,在设计数据库结构时,需要根据业务需求和数据访问模式,谨慎地选择和创建索引。

另外,SQL 语句的优化也是提升数据库性能的关键。

一个复杂的查询如果没有经过优化,可能会导致数据库长时间的阻塞,影响整个系统的运行效率。

通过合理使用 JOIN 操作、避免全表扫描、使用合适的函数和条件判断等技巧,可以显著提高 SQL 语句的执行效率。

数据的备份和恢复是数据库管理中不可忽视的环节。

无论是因为硬件故障、人为误操作还是其他意外情况,数据的丢失都可能给业务带来巨大的损失。

MySQL 提供了多种备份和恢复的方法,如使用mysqldump 命令进行逻辑备份,或者通过复制数据文件进行物理备份。

定期进行数据备份,并测试恢复过程的可行性,是保障数据安全的重要措施。

在处理大量数据时,分表和分区也是常用的技术手段。

通过将大表拆分成多个小表,或者按照一定的规则对表进行分区,可以提高数据的管理和查询效率。

但这也增加了数据库设计和维护的复杂性,需要在前期进行充分的规划和设计。

mysql实训报告心得体会

mysql实训报告心得体会

mysql实训报告心得体会在这次MySQL实训中,我收获了很多宝贵的经验和知识。

通过实际操作和学习,我深入了解了MySQL数据库的基本概念、原理以及应用技巧。

本文将围绕我在实训中遇到的问题、解决方案以及个人感悟这几个方面展开阐述。

问题与解决方案1. 数据库设计和建模:在实训一开始,我们需要完成数据库的设计和建模工作。

然而,由于缺乏经验,我在设计过程中遇到了许多难题。

解决这些问题的关键在于充分了解业务需求,并采用合适的数据库设计原则。

首先,我学习了实体关系图(ER图)的绘制方法,通过这种图形化工具可以更好地展示实体与实体之间的关系,为数据库设计提供了直观的指导。

其次,我认真学习了数据库的范式理论,了解了不同范式的优缺点。

在设计数据库时,我尽量遵循第三范式,将数据分解为更小的关联表,避免数据冗余和更新异常。

最后,在完成数据库设计后,我利用MySQL的建表语句将数据库实现了物理模型。

在此过程中,我需要考虑适当的数据类型、主键、外键以及索引等关键元素,以提高数据的检索和存储效率。

2. SQL查询优化:在实训的过程中,我发现某些SQL查询语句的执行效率较低,查询时间较长,影响了系统的性能。

为了解决这个问题,我尝试了以下几种优化方法。

首先,我通过分析查询语句的执行计划,找到了慢查询的原因。

根据执行计划中的关键参数信息,我添加了适当的索引、优化了表结构,并调整了查询的顺序和条件,从而提高了查询的效率。

其次,我学习了MySQL的查询优化器的工作原理,并根据实际情况进行了优化。

例如,我使用了JOIN语句代替了嵌套查询,避免了多次查询操作,提高了查询效率。

最后,我使用了合理的缓存机制,减少了对数据库的频繁查询。

例如,我在应用程序的代码中加入了缓存逻辑,将经常查询的数据缓存在内存中,减少了对数据库的访问次数。

个人感悟通过这次MySQL实训,我不仅学到了数据库设计和优化的相关知识,还体会到了实践的重要性。

在实训过程中,我深刻体验到理论知识与实际应用之间的差距,发现了很多书本上所没有涉及的实际问题。

mysql数据库设计原则

mysql数据库设计原则

mysql数据库设计原则MySQL数据库设计原则MySQL是一个开源的关系型数据库管理系统,被广泛用于各种应用程序中。

在设计MySQL数据库时,需要遵循一些原则,以确保数据库的正常运行和高效性能。

本文将介绍一些重要的MySQL数据库设计原则。

一、数据类型选择1.1 整数类型在MySQL中,整数类型有多种选择,如TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。

在选择整数类型时,需要根据实际情况来确定所需的最小和最大值范围,并选择最小的数据类型来存储数据。

这样可以节省存储空间,并提高查询速度。

1.2 字符串类型在MySQL中,字符串类型有多种选择,如CHAR、VARCHAR、TEXT和BLOB等。

在选择字符串类型时,需要考虑到所需存储的字符集、字符长度和是否需要进行全文搜索等因素,并根据实际情况来确定所需的最小和最大长度,并选择最小的数据类型来存储数据。

二、表设计2.1 表命名规范为了方便管理和维护数据库,在设计表时应该遵循一定的命名规范。

表名应该具有描述性,并且使用下划线来分隔单词。

2.2 数据库范式为了保证数据完整性和减少冗余数据,在设计表时应该遵循一定的数据库范式。

通常情况下,应该尽可能地将数据分解成更小的表,并使用外键来关联这些表。

2.3 索引设计在MySQL中,索引是提高查询速度的重要手段。

在设计表时,应该根据实际情况来选择需要创建索引的列,并使用合适的索引类型来提高查询速度。

三、安全性设计3.1 用户权限管理在MySQL中,用户权限管理是非常重要的。

应该根据实际情况为每个用户分配不同的权限,并且定期更新密码和修改访问权限。

3.2 数据库备份和恢复为了保证数据安全性,在设计数据库时应该考虑到数据备份和恢复问题。

可以使用MySQL自带的备份工具或第三方工具进行备份,以便在出现故障时能够快速恢复数据。

四、性能优化4.1 查询优化在MySQL中,查询是最常用的操作之一。

mysql实训报告心得体会

mysql实训报告心得体会在进行mysql实训的过程中,我深入学习了数据库管理系统的原理和基本操作,通过实际的项目实践,丰富了自己的技术知识和实战经验。

下面是我对实训过程的总结和心得体会。

1. 理论知识的巩固与应用在课堂上学习mysql的理论知识后,通过实训项目的实践,我更加深入地理解了数据库的核心概念和基本原理。

在实践中,我能够灵活运用SQL语句进行数据的增删改查操作,并且通过实际的项目需求,运用各种SQL语句进行复杂查询和数据处理。

2. 数据库设计与规范化在实训过程中,我学习了数据库的设计方法和规范化技术。

通过对需求分析和实际设计,我明确了数据库的表结构、数据类型和主键外键等约束。

在设计过程中,我注重数据的整合性和一致性,优化数据库结构,减少数据冗余,提高查询和操作效率。

3. 数据库性能调优在实际项目中,我遇到了数据库性能问题,通过调优技术,解决了查询缓慢、连接超时等问题。

我优化了查询语句、创建索引以及调整数据库参数等方式来提高数据库的性能和响应速度。

通过对实际问题的解决,我进一步加深了对数据库性能优化的理解和应用能力。

4. 数据库备份与恢复在实训过程中,我也学习了数据库备份与恢复的方法。

我了解了常用的备份方式,如物理备份和逻辑备份,并熟悉了mysqldump命令的使用。

通过实践,我能够定时备份数据库,并且在需要时进行数据的恢复,保证了数据的安全性和完整性。

5. 安全性与用户权限管理在实训项目中,我学习了数据库的安全性措施和用户权限管理技术。

我了解了常见的安全威胁和安全策略,并掌握了用户权限的分配和管理方法。

通过对角色、权限和访问控制的理解,我设定了相关的用户权限,并保护了数据库的安全性。

通过这次mysql实训,我不仅提高了mysql数据库操作和管理技能,还提升了问题解决和团队合作能力。

在项目中,我与团队成员紧密配合,共同完成了数据库的设计、开发和测试工作。

通过与他人合作,我学会了如何有效地沟通和协作,提高了自己的团队合作能力。

数据库课程设计心得体会范例(10篇)

数据库课程设计心得体会范例(10篇)数据库课程设计心得体会1今天进行了一次完整的数据库设计的过程,其实一直来说我都是非常害怕数据库的设计的,因为在刚刚接触的时候,我就知道,数据库设计其实是一个项目的开端,因为数据库设计实际上就是业务的设计,在需求清晰的时候,完成清晰流畅的业务设计又是一大难点。

一下为我自己的心得经验希望大家批评指正!数据库设计应该遵循以下几个原则:对需求的认知完全没有歧义;熟练而且正确的.E-R图绘制,明确改图是表明实体和关系的图,实体表示要在数据库里保存的类,关系表示类与类之间的相互关系,关系主要有一对一,一对多,多对多。

经验之谈,继承关系通常可以用一对一表示,而一对多或者多对多通常表示类之间的使用关系;在设计时要做到高度的抽象,对内容或者关系相类似的内容抽象为一类实体,在分类时可以抽象出一个“类”的实体,与要分类实体之间进行多对多关系映射,明确哪些是必须要进行存储的实体;如果系统涉及用户角色的不同不妨把,账户和身份的考虑分离开,账户的存在让他是一直存在的并且在身份变化时个人的历史和基础内容是不变的,就是身份的加持让他可以有特权或者使命,而账户是他在系统中的根;对于有值内容,并且需要对值进行统计结果的需要对他进行内容的拆分,比如:问卷表和问卷内容表,问卷内容值表要拆开,才有利于统计计算,而且他们之间是一对多关系;有时更加困难的是一个实体会发生多个维度的分类,那么就把他的拆分维度一一分开;“频道”概念在消息分发时是一个非常灵活的概念;数据库可以建表来模拟消息服务器分发消息,在无法保证实时性必须存储内容时,同一消息对不同用户创建不同的副本;总结,其实我在今天的数据库设计中就学习到这些,学习是一个逐渐进步的过程,也是一个自我折磨的过程,希望我可以在这条路上走的再远一点。

数据库课程设计心得体会2做了一个星期的程序设计终于做完了,在这次程序设计课中,真是让我获益匪浅,我突然发现写程序还挺有意思的。

学习数据库心得(精品5篇)

学习数据库心得(精品5篇)学习数据库心得篇1学习数据库心得在这篇*中,我将分享我学习数据库的经历。

通过学习数据库,我不仅掌握了数据存储的基本原理,也学会了使用SQL语言进行数据查询和分析。

学习数据库的初衷:在当今数据驱动的时代,数据库作为存储和管理数据的重要工具,其重要性不言而喻。

我选择学习数据库,是因为我希望掌握一种可以持久化存储数据的方法,同时能够快速、高效地查询和分析数据。

学习过程:我选择了MySQL作为我的学习数据库。

在学习过程中,我首先学习了数据库的基本概念,如表、列、主键、外键等。

同时,我学习了SQL语言,包括SELECT、INSERT、UPDATE和DELETE等语句。

我通过实践编写简单的SQL查询,并不断修改和优化,从而加深了对数据库的理解。

学习心得:学习数据库的过程是充满挑战的,我遇到了许多问题。

其中最大的问题是理解数据库的设计原则,如关系型数据库的设计,如何根据需求设计出高效、安全、可扩展的数据库。

另外,SQL语言的学习也并非一蹴而就,我通过大量的练习,逐渐掌握了它的语法和用法。

总结:学习数据库让我掌握了数据存储和管理的基本技能,使我能够更好地应对实际工作中的各种数据问题。

我深刻理解到数据库设计的重要性,以及SQL 语言的灵活性和强大功能。

在未来,我将继续深入学习数据库,进一步优化我的数据库设计和查询能力。

学习数据库心得篇2探索数据库世界的奇妙旅程:我的学习心得自从我开始学习数据库以来,我对数据有了更深入的理解,也更加欣赏这个神奇的数据世界。

下面,我将分享我的学习心得,希望能激励更多的人走进数据库的世界,发现它的奇妙之处。

1.理解数据库的重要性学习数据库的第一步是理解它在现代社会中的重要性。

无论是个人还是企业,我们都在不断地收集、处理和使用数据。

数据库就像是一个数据仓库,帮助我们将这些信息有序地组织起来,让我们可以更快地查找、分析和理解数据。

2.掌握基本概念学习数据库需要掌握一些基本概念,如数据库管理系统(DBMS)、数据库模式、表、列、数据类型、索引等。

mysql实验报告总结与反思

mysql实验报告总结与反思MySQL 实验报告总结和反思:1. 实验目的本次实验的目的是通过使用 MySQL 数据库管理系统,实现对数据的记录、存储和管理。

通过本次实验,学生将学习到如何使用 MySQL 数据库管理系统创建数据库、表、索引、查询等操作,并了解 MySQL 数据库的特点和功能。

2. 实验环境本次实验的环境为本地计算机,使用 MySQL 客户端连接到本地MySQL 数据库服务器。

学生可以使用任何 MySQL 客户端工具来完成实验,如 phpMyAdmin、MySQL Workbench 等。

3. 实验步骤(1) 创建数据库在 MySQL 客户端中创建一个新的数据库,例如“test_db”。

(2) 创建表在数据库中创建一个新的表,例如“test_table”。

在表中添加一些列,例如“id”、“name”、“age”等。

(3) 插入数据使用 MySQL 客户端向表中插入数据,例如:```INSERT INTO test_table (name, age) VALUES ("张三", 18), ("李四", 25), ("王五", 30);```(4) 查询数据使用 MySQL 客户端查询表中的数据,例如:```SELECT * FROM test_table;```(5) 索引数据创建一个新的索引,例如“test_table_index”,用于提高查询性能。

(6) 备份和还原数据使用 MySQL 备份和还原工具备份和还原数据,例如:```备份 database test_db;还原 database test_db;```4. 实验反思通过本次实验,学生掌握了 MySQL 数据库管理系统的基本操作,包括创建数据库、表、索引、查询等操作。

学生还了解了 MySQL 数据库的特点和功能,例如支持多种编程语言、支持多种数据库模式等。

然而,在本次实验中,学生也发现了一些不足之处:(1) 数据库设计不够严谨在设计数据库时,需要考虑到数据的完整性、一致性和安全性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MySQL数据库设计经验分享
其实这个经验分享并不仅仅针对MySQL,之所以加上这个关键字其实是为了给搜索引擎看的,呵呵。

这篇文章的目标是为了拓宽新手的思路,对于老鸟可能没什么帮助了。

文章主要涉及以下方面的内容:
1.数据完整性约束的意义:数据的第一道防线;
2.避免冗余字段:请不要认为这是一种弹性或者灵活性的体现;
3.请尽可能的收集数据:这是一种境界;
4.为什么建立索引:不仅仅是速度;
5.事务、触发器与存储过程:这是一扇门;
数据完整性约束的意义
很多新手创建的数据库非常的简单,一堆字段扔进去就搞定了,反正脚本会搞定一切。

但是,你有没有反思过一个问题,写脚本的也是人,是人就会犯错误,犯了错误就可能搞乱数据,而数据是一切应用的基础。

因此,我建议你们能够静下来,细心的,花费更多的时间来研究如何更好地设计数据库结构。

主键是必须的
这是我的第一个建议,每个表必须具有主键,而且最好是使用单独的一个字段作为主键,这样从根源上扼杀了出现两条完全相同的数据的可能性。

你可能需要额外的唯一键
例如用户信息表中,除了用户编号以外,其登录名称也应该是唯一的,不要指望以后可以在程序中处理这个情况,现在就做,只要把它标记为唯一键,就算程序中忘了判断也不会让错误的数据被存储进来。

字段的类型和长度
请努力使用与数据匹配的类型和适当的长度,虽然你可以把时间保存为varchar类型,但是明显还是datetime类型更好,因为你不可能把2013-02-30之类的日期保存到datetime 类型的字段中。

字段的长度也是需要考虑的,过长虽然比过短带来的麻烦小很多,但是浪费了很多空间。

默认值
尽量为字段设置默认值,例如字段is_read用来表示用户是否已经阅读过这条留言,1表示已读,请为它设一个默认值0来代表未读,而不是在日后的查询语句中通过is_read<> 1或者is_read = IS NULL OR is_read = 0来判断。

允许为NULL吗?
这个问题需要思考,而不是一概允许或一概不允许这种模式化的判定。

同时,建议不要将NULL作为一个特殊的值来使用。

外键约束是必不可少的
你必须理解和开始使用外键,并且明白外键约束的用法,这是维护数据完整性很重要的一环。

建立外键的同时你会对程序的业务逻辑有更清晰的认识。

正确的使用它防止误删具有依存关系的数据,同时通过级联删除保证在删除的时候不留下任何垃圾。

避免冗余字段
千万不要认为冗余字段能够使数据表更有弹性、更灵活。

首先来说冗余的字段必然都是允许为NULL的,因为没有适合的代码为这些字段赋值(如果有的话那就不是冗余字段了,对吗)。

这只会增加数据表的体积。

事实上修改表结构仅需几分钟,真正的麻烦还是来自于为新字段添加相应的业务逻辑。

而且事物总是在变化的,今天你觉得未来可能会用到这个字段,但是可能下个星期就不这么想了,一个月之后你根本不记得当初留了这么一个字段。

所以,删了吧。

尽可能的收集数据
其实这有点跑题,因为这不仅仅是数据库设计的事儿,程序员可能也要付出一些时间。

我一贯的观点就是“数据是一切应用的基础”,尽量的收集它们,以后也许会有用(如果这个应用有一个长远的预期的话,否则你可以忽略这点)。

我无法想象Google,百度或者淘宝明天会做什么,但是我能肯定它们的业务调整的依据就是来自这些捕获的数据。

尽可能的收集数据是指在不增加用户操作指令的前提下尽可能的收集一些相关信息。

比如各种时间、浏览页面的轨迹等等。

我甚至怀疑以后某些应用会收集用户击键频率这样的信息,然后利用它来检测账号是否被盗。

此外,我觉得应该尽量在插入/修改/删除数据的时候多做一些事情,相对来说,这些操
作不那么频繁,而且单次操作的数据量也更小。

不要将压力都留给查询语句。

例如,如果你的程序中需要使用类似SELECT *, SUM(`point`) AS `total_point` FROM `table` GROUP BY
`user_id`的语句的话,不妨考虑为这个表增加一个total_point字段。

为什么建立索引
如果某个字段,或一组字段会出现在一个会被频繁调用的where子句中,那么它们应该是被索引的,这样会更快的得到结果。

同时,唯一索引的用途前面提到了,恰当的使用它们,避免意外的发生。

我个人不推荐使用全文索引,尤其对于汉字来说,全文索引的开销太大了,我宁可选择搜索引擎提供的站内搜索功能。

虽然搜索引擎的收录不是很及时,但是我觉得也不是不能接受。

再说一次,我觉得应该尽量在插入/修改/删除数据的时候多做一些事情,相对来说,这些操作不那么频繁,而且单次操作的数据量也更小。

不要将压力都留给查询语句。

事务、触发器与存储过程
哦,事务处理其实是程序中要做的事情,多条数据操作语句应该放入事务处理中,我们需要随时注意保证数据的完整。

触发器和存储过程可以减少程序中的sql语句数量,同时减少了程序与数据库之间通讯带来的损耗。

特别是触发器,它能极大的帮助我们,本站的数据库设计中就使用了它,例如你发表回复或删除回复的时候会触发一个更新文档回复数量的操作。

不过由于MySQL数据库中级联操作无法使触发器触发的怪癖可能需要你做更多的处理才能让触发器顺利工作。

结语
请认真而仔细的设计你的数据库,并且使表名称和字段名称都易于理解并避免混淆。

例如,代表删除状态的字段最好命名为trashed表示已删除,而不是trash,明显的,当你看到值为1的时候前者你能明白这表示已经删除了,而对于后者你恐怕就拿不准了。

你可以想象为数据库结构是软件的等比例模型,就像是售楼处的模型一样,它只会比实物更漂亮而不是更丑。

所以如果你的数据库不够美观,你的软件质量基本已经定性为不堪入目了。

如果你有什么意见和想法可以点击这里打开原文地址并通过回复的方式告诉我,只有注册用户才能回复哦。

呵呵。

相关文档
最新文档