`
superich2008
  • 浏览: 324617 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

[转]浅谈数据库怎么学和怎么玩

sql 
阅读更多

转载自:http://www.shenyisyn.org/2013/06/26/shujuku.htm

最近有人问我数据库怎么学?要学哪些?以下我谈一些个人想法。
  其实我的数据库知识不是很扎实,真心的。
当年我学这个东西时某个大神告诉我“学会sql server”走遍天下都不怕。事实上,这几年如果只会sqlserver根本到哪都很怕。
原因?
1、如果是政府软件,虽然不像互联网那样高,但是数据存储量确实很大很大,大家想想譬如财政数据、公积金数据、民政局数据等,而且很多数据不能使用缓存,必须实时计算,当sql2008还没出现时,确实在大数据计算性能上不如oracle
2、由于某些原因,政府很少会同意使用windows服务器平台,大都会使用unix或linux平台,这就决定了sqlserver或者.net应用很难卖出去(当然不是完全不行,有些局部部门的软件还是可以的,机密数据那想都不要想)
3、对于企业项目,很多中小企业为了节约成本又想有节操的不使用盗版,那么mysql是他们最好的选择。
4、对于自己做网站,前期如果不想花大成本购买独立服务器的话,使用mysql是正道,便宜而且好用,最重要的是前期也没有这么多数据和人气让我们需要上高级数据库。
  其实我个人认为,至少掌握1-2个数据库是很有必要的,譬如mysql和oracle,至于sqlserver不是它简单,而是微软的东西在用户体验和易学性上确实做得更甚一筹(易学性既是优点也是缺点,缺点在于出了问题你很难找到最根本的原因)
以下有几个建议关于怎么玩数据库。
换个方法学习
  一、 不建议按部就班的学习,因为你这么学,别人也是这么学,而每个人的理解能力、技术基础、记忆力、周边环境和自己肚皮饱饿程度都是不同的,这些要素直接影响你的学习速度。
  如果大家都在同一起跑线上,使用相同的学习办法是不可取的
二、自己逼自己
  模拟项目学习是我个人认为最好的办法。
  首先需要了解基本的语法,譬如select insert update 等等
  譬如我们新建一个新闻表叫做 news ,里面包含 id,title,content(text型),addtime,clickcount 5个字段。
  然后手工insert into 这张表50万条数据,注意必须是50万或更多且新闻内容必须要大。
  然后做一个页面,展示某一条新闻的详细,右边边栏展示(1、相关新闻 2、人气排行 3、两天内发布的新闻 等各10条)
(1) 这时你会发现,取数据还真不能简单的 select * from 表 where id=X,你会需要学习如何创建字段索引、如何需要在该表中加入冗余字段,你还会发现当新闻表特别大的时候,用户每点击一次新闻此时如果update这张表的clickcount时页面很慢,你的笔记本风扇很烫。
(2) 如果再复杂点需求,你会发现用视图比较好,或者用存储过程来更新一些数据效率更高,然后你会发现新增新闻时还要使用事务才行。于是逼着你去学这些知识。
(3) 再进一步,你会发现自己做的新闻页面好丑好丑,于是逼着你去学css和html 和jquery
(4) 然后你把表中的数据扩展到200万以上,你会发现某些功能还真不是一张表可以搞定的。貌似还得了解数据库的分区甚至分表。 你还会学会用数据库sql查询分析器来分析哪条sql语句占了很大性能。甚至不同的sql语句有的比较耗内存,而有的sql语句让你的cpu涨到了100%。
于是,我个人认为你本来学1个月然后做测试项目,共需2个月左右才能基本掌握一个数据库知识,如果用同步边学边自虐的方式很可能时间要节约20%以上,并且让你掌握的更扎实。
  这就是为什么有的计算机系大学毕业的学生不如其他专业转行的学生。
总结:
  当然,技术(这里主要指开发相关)做到高级境界 其实是数学知识和自然社会知识的碰撞,和编程语言也就关系不大了。但是数据库知识是必须掌握的,不管你做什么样的应用,只要你需要存储数据那么必须了解数据库。
  如果你想作为业余爱好更深入的了解数据库,那么你可以从数据结构学起,深入了解数据库是怎么运作的,当然mysql都是开源的,学学思想很不错,当然我从没看过。
  如果在你还没有成为大神时就想自己开发一个关系型数据库,那可能不太现实。在我国玩这种事情的前提是必须要有钱,然后才能谈技术、谈团队、谈产品,否则你会深陷泥塘不可自拔。

还有一句话,好的并且是赚钱的程序员大部分都是逼出来的,在这个范围内没有天才。

分享到:
评论

相关推荐

    浅谈数据库设计技巧经验

    通过对不同类型设计者的分析和具体案例的探讨,我们可以看到,优秀的数据库设计不仅能够提高系统的整体性能,还能降低后期维护和扩展的成本。因此,无论是初学者还是经验丰富的开发者,都应该不断学习和探索,努力...

    浅谈数据库设计技巧-程序员应该读的

    数据库设计是软件开发过程中的关键环节,尤其是在大数据和云计算时代,高效、稳定、灵活的数据库设计对于系统的性能、可扩展性和数据安全性具有决定性影响。本文将深入探讨数据库设计的一些重要技巧,帮助程序员提升...

    浅谈数据库设计技巧[pdf]

    2. **系统学习数据结构但缺乏实战经验的程序员**:这类程序员在设计数据库时过于依赖理论,遵循严格的规范化原则,如E-R图和第三范式(3NF),导致系统在功能扩展时需要大量修改。 3. **具有实战经验的程序员**:...

    浅谈数据库设计技巧

    本文主要探讨了数据库设计的一些实用技巧,适用于初入职场和有一定经验的数据库设计人员。 首先,数据库设计人员通常可分为五类: 1. 未系统学习过数据结构的程序员,他们的设计往往简单直接,但缺乏扩展性和关联性...

    浅谈数据库设计技巧 关于sql

    数据库设计是IT领域中至关重要的一部分,它涉及到如何有效地组织和存储数据,以便于高效地访问和管理。本文将探讨一些数据库设计的关键技巧,尤其关注SQL语句的使用。 首先,数据结构是数据库设计的基础。数据结构...

    浅谈数据库与地理信息系统.doc

    它由数据库、数据库管理系统(DBMS)和数据库应用系统组成,确保数据的安全、高效和可靠。在GIS(地理信息系统)中,数据库系统更是扮演了至关重要的角色,因为它需要处理和组织大量的空间数据,如地理位置、地形...

    浅谈ORACLE数据库的性能优化.pdf

    Oracle数据库作为一款广泛应用于管理信息系统、企业数据处理、互联网和电子商务领域的关系型数据库管理系统,其性能优化对于确保系统的稳定性和高效运行至关重要。随着数据量的快速增长,数据库性能优化成为数据库...

    浅谈数据库中SQL语句的优化.pdf

    2. **数据库生命周期与优化时机:**数据库系统从设计到成品可以分为设计、开发和成品三个阶段。设计阶段对数据库性能进行优化成本最低,收益最大;而到了成品阶段再进行优化,则成本最高,收益最小。 3. **性能优化...

    浅谈计算机学习方法

    【浅谈计算机学习方法】 计算机学习是一门涵盖广泛领域的学科,包括理论、硬件、软件、网络及应用等多个方面。为了高效地掌握计算机知识,我们需要树立正确的学习观念,并设定明确的学习目标。 首先,我们要确立...

    浅谈数据库技术中的数据挖掘.pdf

    数据挖掘是指在海量数据中运用统计学、机器学习以及数据库技术等手段,提取并发掘数据中隐藏的模式和知识的过程。在当前信息时代,数据的爆发式增长使得数据挖掘技术成为了研究与应用的热点。数据挖掘的目的是从大量...

    浅谈SSH学习要点

    同时,深入研究关联映射和继承映射,能够帮助你在数据库设计上实现更灵活的结构。此外,事务管理和并发控制对于多用户环境下的数据一致性至关重要,而缓存机制则能提升查询速度。 最后,Spring框架,以其依赖注入...

    浅谈中职SQL Server数据库教学方法.pdf

    1. 从数据库概念入手,通过深入浅出的讲解帮助学生理解数据库的基本含义,即数据库是“存入数据的仓库”,从而激发学生对数据库学习的兴趣。教师应该将复杂的概念简化,让学生能够轻松理解,并认识到数据库技术在...

    数据库,适合新手学习,希望大家看看吧

    《浅谈MySQL中索引及其使用.txt》可能涵盖了关于MySQL索引的多种类型,如B树索引、哈希索引、全文索引等,以及如何创建、查看和优化索引。B树索引是最常见的一种,适用于大部分情况;哈希索引则提供快速的等值查询,...

    浅谈Oracle数据库SQL性能优化.pdf

    随着信息技术的飞速发展,数据库系统变得越来越复杂和庞大,尤其是在网络化时代背景下,人们对数据库系统的性能要求不断提高。Oracle数据库作为当前广泛使用的一种数据库系统,其性能优化显得尤为重要。本文将深入...

    浅谈高职软件专业Oracle数据库教学.pdf

    Oracle 数据库是由Oracle公司开发的关系型数据库管理系统,是目前最新的版本Oracle 11g,被广泛应用于大型应用和超大型系统,因其优越的性能、基于角色的权限管理模式、大数据存储支持、分布式管理和独特的表空间...

    浅谈高职oracle数据库教学中的几点改进.pdf

    在高职教育中,理解关系数据库的关键在于掌握表的创建与修改、数据完整性(实体完整性、参照完整性和用户定义完整性)、SQL语言用于查询、更新和删除数据的基本操作,以及数据库的规范化理论。 【参考文献与专业...

    浅谈《Oracle 数据库技术》的教学方法.pdf

    在当前IT教学领域,尤其是在数据库技术的教学中,《Oracle 数据库技术》作为一门极具实用性和专业性的课程,要求教学方法既要注重理论知识的传授,也要加强实践操作能力的培养。本文针对Oracle数据库的教学方法进行...

    浅谈PLC学习的5个阶

    浅谈PLC学习的5个阶 1、学习PLC首先要选好学习那一个厂家的PLC,日系的 PLC内部软件集成度高应用简单.早期的OMRON、三菱应 用比较多、现在由于贸易和国际间的合作关系应用西门 子PLC、罗克韦尔的多一点,(尽管说学...

    浅谈ADO、BDE与SQL server 2000数据库连接方法

    随着技术的发展,ADO因为其与现代数据库系统的紧密集成和更高的性能,通常被认为是更优的选择。然而,BDE在某些场景下仍然有其优势,比如对旧系统的支持或对特定数据库格式的优化。理解这两种技术的工作原理和特点,...

    vb学习浅谈(经验)

    ### VB学习浅谈——数据库连接经验分享 #### 一、引言 对于初学者来说,掌握Visual Basic (VB) 的数据库连接技术是非常重要的一步。本文将重点介绍在使用VB进行数据库编程时的一些基本技巧和常见问题解决方案。...

Global site tag (gtag.js) - Google Analytics