Questions tagged «mysql»

MySQL是一个开放源代码的关系数据库管理系统。


12
将大文件(10 MB)存储在数据库中是不好的做法吗?
我当前正在创建一个Web应用程序,允许用户存储和共享1 MB-10 MB的文件。 在我看来,将文件存储在数据库中将大大降低数据库访问速度。 这是一个有效的问题吗?将文件存储在文件系统中并将文件名和路径保存在数据库中是否更好?使用数据库时,是否有与存储文件有关的最佳实践? 我正在该项目的PHP和MySQL中工作,但是对于大多数环境(Ruby on Rails,PHP,.NET)和数据库(MySQL,PostgreSQL)都是相同的问题。

22
存储过程是全球最大的IT软件咨询公司之一的不良做法?
我在全球三大IT咨询公司之一的一个项目中工作,一名DBA告诉我,公司的最佳实践的状态存储过程不是“最佳实践”。这与我学到的一切都太相反了。 存储过程为您提供代码重用和封装(软件开发的两个支柱),安全性(您可以为单个存储的proc授予/撤消权限),保护您免受SQL注入攻击并还有助于提高速度(尽管DBA表示从SQL Server 2008开始,即使常规SQL查询运行了足够的时间,它们也会被编译。 我们正在使用敏捷软件开发方法开发复杂的应用程序。任何人都可以考虑为什么不想使用存储的proc的充分理由吗?我的猜测是,DBA不想维护那些存储的proc,但是似乎有太多负面因素无法证明这种设计决策是正确的。

3
结构化日志记录与基本日志记录的优点
我们正在构建一个新的应用程序,我想包括结构化日志记录。我理想的设置应该是SerilogC#代码和BunyanJS。fluentd我最初想到的是,这些东西会进入然后可能会涉及到许多事情elasticsearch + kibana。我们已经有一个MySQL数据库,因此在短期内,我对获得Serilog + Bunyan设置和开发人员使用它更感兴趣,我们可以登录MySQL,同时花更多的时间来流利地进行其余工作。 但是,我们经验丰富的编码人员之一更喜欢做类似的事情:log.debug("Disk quota {0} exceeded by user {1}, quota, user);使用log4net然后对MySQL运行select语句,例如:select text from logs where text like "Disk quota"; 话虽这么说,哪种方法更好,和/或在选择日志系统类型时我们需要考虑什么?
110 c#  javascript  mysql  logging 

10
为什么“从表中选择*”被视为不良做法
昨天我正在与“业余”程序员讨论(我自己是专业程序员)。我们遇到了他的一些工作,他说他总是查询数据库中的所有列(即使在生产服务器上/代码中)。 我试图说服他不要这样做,但是还没有那么成功。在我看来,程序员仅应查询“简洁”,效率和流量方面实际需要的内容。我误会我的观点了吗?
96 database  sql  mysql  bad-code 

3
MariaDB和MySQL有什么区别?
MariaDB和MySQL有什么区别?我对两者都不是很熟悉。我主要是前端开发人员。 它们在语法上是否相似?这两种查询语言在哪里不同? 维基百科只提到许可之间的区别: MariaDB是MySQL数据库的社区开发分支,其推动力是由社区维护其在GPL下的自由状态,而不是由Oracle当前拥有的MySQL许可证状态的任何不确定性。

15
如果密码存储在安全的数据库中,为什么还要加密?
我有一个网络服务。现在,我的密码以纯文本格式存储在服务器上的MySQL表中。我知道这不是最佳做法,这就是为什么我正在努力。 如果密码存储在安全的数据库中,为什么还要加密?我意识到,如果有人入侵我的数据库,他们将获得每个人的密码。但是如果有人进入我的数据库,我还有其他问题,例如删除数据。 我能想到的情况是您被黑了。您从几个小时前还原了数据库,一切都很好。但是,如果您的密码是纯文本...小偷拥有所有密码,则必须重置所有密码。麻烦您的用户。 如果密码已加密,则可以还原到以前的数据库。这是正确的想法吗?

6
在数据库配置方面,应该在UTF-8上使用Latin-1吗?
我们在我工作的公司中使用MySQL,并使用Ruby on Rails构建面向客户端和内部的应用程序。 当我开始在这里工作时,遇到了一个以前从未遇到过的问题。生产服务器上的数据库设置为Latin-1,这意味着只要有用户输入,用户在其中复制和粘贴UTF-8字符,MySQL gem就会引发异常。 我的老板称这些为“坏字符”,因为它们大多数是不可打印的字符,并说我们需要将它们去除。我找到了几种方法来完成此操作,但是最终我们遇到了需要UTF-8字符的情况。另外,这有点麻烦,特别是因为似乎我所读过的唯一解决方案是将数据库设置为UTF-8(对我来说很有意义)。 我听到的坚持使用Latin-1的唯一论点是,允许不可打印的UTF-8字符可能会使MySQL中的文本/全文搜索混乱。这是真的吗? 还有其他原因使人应该在UTF-8上使用Latin-1吗?据我了解,它是卓越的,并且变得越来越普遍。

11
我应该在数据库中还是仅在代码中定义表之间的关系?
根据我的经验,我过去阅读的许多项目在数据库中都没有关系定义,而是仅在源代码中定义了它们。因此,我想知道在数据库和源代码中定义表之间的关系的优缺点是什么?而更广泛的问题是关于现代数据库中的其他高级功能,例如级联,触发器,过程...我的想法有几点: 在数据库中: 从设计中纠正数据。防止可能导致无效数据的应用程序错误。 在插入/更新数据时减少网络与应用程序的往返路程,因为应用程序必须进行更多查询以检查数据完整性。 在源代码中: 更灵活。 在扩展到多个数据库时更好,因为有时该关系可以是跨数据库的。 更好地控制数据完整性。数据库不必每次应用程序修改数据时都要检查一次(复杂度可以是O(n)或O(n log n)(?))。而是将其委托给应用程序。而且我认为,与使用数据库相比,在应用程序中处理数据完整性将导致更多详细的错误消息。例如:创建API服务器时,如果您在数据库中定义了关系,并且出了一些问题(例如所引用的实体不存在),则会收到一条带有消息的SQL异常。简单的方法是将500返还给客户端一个“内部服务器错误”,并且客户端不知道出了什么问题。或者服务器可以解析消息以找出问题所在,我认为这是一种难看且容易出错的方式。如果您让应用程序处理此问题, 还有别的事吗? 编辑:正如Kilian指出的那样,关于性能和数据完整性的观点非常误导。所以我编辑来纠正我的观点。我完全理解让数据库处理将是一种更有效,更可靠的方法。请检查更新的问题,并对此进行一些思考。 编辑:谢谢大家。我收到的所有答案都指出,约束/关系应在数据库中定义。:)。我还有一个问题,因为它超出了此问题的范围,我将其发布为一个单独的问题:处理API服务器的数据库错误。请留下一些见解。

4
在Git中备份MySQL数据库是一个好主意吗?
我正在尝试改善应用程序的备份情况。我有一个Django应用程序和MySQL数据库。我读了一篇文章,建议在Git中备份数据库。 一方面,我喜欢它,因为它将使数据和代码的副本保持同步。 但是Git是为代码而不是数据而设计的。因此,它会做很多额外的工作来使MySQL每次提交都转储,这并不是必须的。如果我在存储文件之前先对其进行压缩,那么git还会对文件进行区分吗? (转储文件当前未压缩为100MB,压缩后为5.7MB。) 编辑:代码和数据库模式定义已经在Git中了,它确实是我现在担心备份的数据。
57 database  git  mysql  django 

4
为什么将MySQL用于字典网站是个坏主意?
我打算设计和建立一个数据库,以存储词典条目(通常是单个单词)及其在另一种语言中的含义。因此,例如,表Glossary必须具有条目和定义,并且每个表记录都具有对存储在其中的记录的ID的引用Tag(每个条目必须具有标签或类别)。 由于我的数据具有结构,因此我认为使用SQL数据库(如MySQL)并不是一个坏主意;但是人们说MongoDB的性能要好得多。 在客户端,应用程序必须能够提供一个具有自动完成功能的搜索框,该框使用后端提供的REST API。在这种情况下使用MySQL是否安全?还是应该为此使用MongoDB或任何其他解决方案的ElasticSearch?应该以这种方式存储和访问数十万条记录。

2
移动应用程序中的数据同步-多个设备,多个用户
我正在考虑构建我的第一个移动应用程序。该应用程序的核心功能之一是多​​个设备/用户将有权访问相同的数据,并且所有设备/用户都将具有CRUD权限。 我认为该体系结构应包含一个存储所有数据的中央服务器。设备将使用API​​与服务器交互以执行其数据操作(例如,添加记录,编辑记录,删除记录)。 我想象一个场景,其中的数据同步将成为一个问题。假定该应用程序在未连接到Internet时应能正常工作,因此无法与此中央服务器通信。所以: 用户A离线,并编辑记录#100 用户B离线,并编辑记录#100 用户C离线,并删除记录#100 用户C联机(大概记录#100应该在服务器上被删除) 用户A和B联机,但是他们编辑的记录不再存在 可能出现与上述类似的各种情况。 一般如何处理?我计划使用MySQL,但想知道它是否不适用于此类问题。
42 database  mysql  data  mobile 

11
为什么对SQL注入的防护不是高优先级?
在Stack Overflow上,尽管基本解决方法已广泛使用了十多年,但我在问答中看到许多PHP代码都具有极易受到SQL注入攻击的MySQL查询。 为何今天仍在使用这些类型的代码片段?
39 php  mysql 


1
btree和rtree索引有什么区别?
我在MySQLWorkbench上注意到,您可以在进行工程前设计之前选择如何存储索引。存储类型为: BTREE 实时树 杂凑 经过研究,我发现了一些非常重要的信息,因此我正在寻找有关这些信息之间的区别和/或为什么应该选择一个而不是另一个的实用信息。 另外,我以前从未选择过存储类型,因此我假设MySQL正在选择默认存储类型(BTREE?)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.