本文目录一览:
- 1、mysql数据库怎么学
- 2、数据库应该怎么学习,零基础。
- 3、零基础如何自学使用MySQL数据库?
- 4、MySQL客户端软件有哪些不错的?值得推荐和一用?
- 5、MySQL面试题(无答案版) 中高级必看
- 6、数据库该怎么学习,纯小白?
mysql数据库怎么学
先给出我的核心观点:
学习,无论你是学什么,也无论你有没有基础。思考永远是第一位的,有些知识你没接触过不要紧,用不着害怕,也没必要害怕。重要的是一秒钟也不要停止思考,问题要想透彻,正所谓磨刀不误砍柴工。尤其是作为工程师,要有打破砂锅问到底的精神,否则你怎么学都没用。
首先,学习基本的SQL语法。完成这个后,你就可以编写SQL语句了。这一步推荐:W3Schools的 SQL 教程。
其次,学习数据库的主要功能和使用方法,比如用户相关或者权限相关等等。
我推荐两本书:
一、《MySQL必知必会》 这本书讲的非常全,从基本概念,到查询到插入新建表,用户的管理,都有具体的例子,非常适合没有任何基础的同学来学习Mysql,总之这本书学习的方法就是:1、十分钟了解下数据库的基本概念 2、找到练手的数据库 3、对照着上面的内容去敲。本书里也有大量的内容是讲sql的,可以结合w3c的sql教程一起,有取舍地看。
二、《数据库系统概念》这本书是dba必看的。看完这些并且实践+思考之后,可以算入门了。接下来对于希望深入学习的童鞋我推荐几本书(很多大神都这么推荐),《高性能MySQL(第3版)》、 《MySQL技术内幕(第4版)》,《MySQL技术内幕 InnoDB存储引擎》,《深入理解MySQL》还有Mysql的官网。读完这些东西,再加些丰富的经验,理论上来讲就具备DBA的水平了。十分推荐阅读Planet MySQL上汇总的博客,特别是Percona's MySQL InnoDB performance and scalability blog但是,正如我开头所言的。
面对问题的时候一定要积极思考!比如:我问你,面对一个并发量比较高的场景,如何配置mysql的连接数?你可能会回答:“哦,就是调高max_connection的数值吧。”那,你有没有思考过调到多少是最合适的呢?为什么这样设置就最合适呢?也许你会回答:“恩我知道,可以看系统之前的max_used_connection的数值,然后来设置。也可以调高back_log的值。”那你有没有思考过,max_connection连接数太高会有什么不好的影响呢?back_log设置的太高有什么不好的地方呢?max_connect的上限其实是取决于mysql能获得的文件描述符的数量,也就是说你就算设置成10000,最后也是没用的,系统会根据机器的情况自动调低。也许你会回答:“恩我知道,设置太高,会有系统开销...”那你有没有思考过,这些开销具体是什么呢?是什么工作导致了需要这些内存开销?也许你还会回答,在连接创建的时候,会立刻为它分配连接缓冲区以及查询缓冲区,这些都会吃内存。那你有没有思考过,占据的资源具体是多少呢?取决于哪些因素呢?好了,我们先结束这个问题。回到知乎的问题上来,其实我说了这么多,就是表达要如何自学mysql。所以的所以,你必须不断思考,才能在工作中面对具体场景的时候,非常淡定地推断:“哦,一定是这里出了问题。应该怎么怎么做。”面对问题,拿出打破砂锅问到底的精神,先思考一番,给出自己的假设,不要着急地去找度娘,谷歌。思考过后,带着你的推断或者答案,大胆地去搜索吧!去看看别人的见解,去看看官方的描述!这才是一个工程师应有的态度。最后我想给出一些有价值的学习资料。可以省去一些时间。-电子书:我认为多看书还是有好处的。有些书值得反复看许多遍,有时候只看一遍无法深刻理解吸收,思考也不够充分
数据库应该怎么学习,零基础。
1、 自己在windows和linux上安装了mysql,自学linux的基础知识,学习mysql的最基础的知识,即怎么写sql,存储过程,表的设计等,从0到熟悉大概花了3个月 ,推荐《mysql入门很简单》。
2、系统地较为深入地学习mysql的sql优化,备份和恢复,参数优化,架构优化,硬件层面的优化,高可用方案,复制技术等等,这段时间你不一定能实际接触到这些,就像我当初那样,肯定没什么公司招一个小白。
我选择自己看书,推荐《高性能mysql》,里面所有的章节都需要看一遍,以现在的水平肯定看不懂,但需要知道大概怎么回事,为后续的找mysql初级dba的工作打一个铺垫,这个过程大概也需要3个月。
3、 纸上得来终觉浅,完成以上两步,我开始准备找一份mysql相关的工作,而不是天天用着excel表格做着select * from table_sb这样的工作。
当然我这么猥琐的人肯定不会裸辞,该画的电路板也一样画,业余时间开始投初级mysql dba的工作,并且不间断地学习,网上各种找mysql面试的相关题目(实际上我当时完全没有任何实战经验),陆续收到一些面试,凭借之前自学的mysql知识,开始胡乱吹牛逼,先混进去再说。
你不做mysql实际相关的工作,永远也不知道自己之前认知的db知识有多幼稚。
友情提示一点,一般公司都没有专职dba的,所以面试的时候一定要自信,其实你学了这么多,虽然毫无实战经验,理论知识很大概率比面试你的人牛逼,所以各种吹,我就这样真正进入初级dba的圈子(由于这时对linux还处于cd ls的水平,所以之前也根本没做过运维),这个边工作边找工作的过程又持续了2个月。
4、真正进入互联网,接触生产环境后,这是我进步最大的时候。
第一步需要将之前所学真正地应用起来,并且应用的过程中,再回头看之前的书籍,这时候需要真正去理解,而不是似是而非,一知半解。
这时再推荐《高性能mysql 第三版》,全本再看一遍,这时需要全部看懂,另外还有《mysql技术内幕:innodb存储引擎》等等。
总之这段时间就需要开始关注mysql一些细节了,比如db故障处理,高可用,负载均衡等等的具体实现了。
另外,linux的知识同步也要深入去学习,至少会写shell脚本,常见的linux知识等,我在这花了1年多;
5、 dba的工作一般是非常轻闲的,毕竟不是大公司,技术能力有限,该学的也学得差不多了,接触不到海量数据,高并发等比较锻炼人的场合,于是我又准备跳了。
于是来了公有云,现在每天运维万多个db实例,平均每天处理5+个紧急db故障,几乎mysql会遇到的问题,感觉都遇到了,能感觉到技术实力和经验也在每天都在积累,在进步。
但是感觉还是欠缺了很多,下一步就看你选择了,是再去研究源代码,底层原理的东西多点,还是数据库运维和应用多一点,就比如业界姜承尧,何登成与叶金荣的区别。
由于我的历史原因,对c++等几乎不懂,平时也用不到,所以看代码等事实际太累,于是我再去学mongodb,接了公司mongodb运维的活,算是在广度上的一个扩展,万一哪天mysql不行了呢
6、 总之,对于db小白来说,最重要的一点就是,学习的过程不能断。
PS 上面的方法比较野路子,适合没什么基础的童鞋,如果本来就是DBA,比如从oracle转到mysql,那么建议直接看mysql官方文档,而官方文档是db达到一定水平后必看,出问题时必查的权威文档。
零基础如何自学使用MySQL数据库?
对于非计算机出身的我,大学只会hello word和跑马灯,期间过程确实非常曲折,分享下我的自学过程:
1、 自己在windows和linux上安装了mysql,自学linux的基础知识,学习mysql的最基础的知识,即怎么写sql,存储过程,表的设计等,从0到熟悉大概花了3个月 ,推荐《mysql入门很简单》。
2、系统地较为深入地学习mysql的sql优化,备份和恢复,参数优化,架构优化,硬件层面的优化,高可用方案,复制技术等等,这段时间你不一定能实际接触到这些,就像我当初那样,肯定没什么公司招一个小白。 我选择自己看书,推荐《高性能mysql》,里面所有的章节都需要看一遍,以现在的水平肯定看不懂,但需要知道大概怎么回事,为后续的找mysql初级dba的工作打一个铺垫,这个过程大概也需要3个月。
3、 纸上得来终觉浅,完成以上两步,我开始准备找一份mysql相关的工作,而不是天天用着excel表格做着select * from table_sb这样的工作。 当然我这么猥琐的人肯定不会裸辞,该画的电路板也一样画,业余时间开始投初级mysql dba的工作,并且不间断地学习,网上各种找mysql面试的相关题目(实际上我当时完全没有任何实战经验),陆续收到一些面试,凭借之前自学的mysql知识,开始胡乱吹牛逼,先混进去再说。 你不做mysql实际相关的工作,永远也不知道自己之前认知的db知识有多幼稚。 友情提示一点,一般公司都没有专职dba的,所以面试的时候一定要自信,其实你学了这么多,虽然毫无实战经验,理论知识很大概率比面试你的人牛逼,所以各种吹,我就这样真正进入初级dba的圈子(由于这时对linux还处于cd ls的水平,所以之前也根本没做过运维),这个边工作边找工作的过程又持续了2个月。
4、真正进入互联网,接触生产环境后,这是我进步最大的时候。 第一步需要将之前所学真正地应用起来,并且应用的过程中,再回头看之前的书籍,这时候需要真正去理解,而不是似是而非,一知半解。 这时再推荐《高性能mysql 第三版》,全本再看一遍,这时需要全部看懂,另外还有《mysql技术内幕:innodb存储引擎》等等。 总之这段时间就需要开始关注mysql一些细节了,比如db故障处理,高可用,负载均衡等等的具体实现了。 另外,linux的知识同步也要深入去学习,至少会写shell脚本,常见的linux知识等,我在这花了1年多;
5、 dba的工作一般是非常轻闲的,毕竟不是大公司,技术能力有限,该学的也学得差不多了,接触不到海量数据,高并发等比较锻炼人的场合,于是我又准备跳了。 于是来了公有云,现在每天运维万多个db实例,平均每天处理5+个紧急db故障,几乎mysql会遇到的问题,感觉都遇到了,能感觉到技术实力和经验也在每天都在积累,在进步。 但是感觉还是欠缺了很多,下一步就看你选择了,是再去研究源代码,底层原理的东西多点,还是数据库运维和应用多一点,就比如业界姜承尧,何登成与叶金荣的区别。 由于我的历史原因,对c++等几乎不懂,平时也用不到,所以看代码等事实际太累,于是我再去学mongodb,接了公司mongodb运维的活,算是在广度上的一个扩展,万一哪天mysql不行了呢
6、 总之,对于db小白来说,最重要的一点就是,学习的过程不能断。 PS 上面的方法比较野路子,适合没什么基础的童鞋,如果本来就是DBA,比如从oracle转到mysql,那么建议直接看mysql官方文档,而官方文档是db达到一定水平后必看,出问题时必查的权威文档。
MySQL客户端软件有哪些不错的?值得推荐和一用?
MySQL作为一种非常流行的关系型数据库,在信息系统开发中扮演着非常重要的角色,经常被用于后端数据存储,而MySQL本身又不提供非常便捷的客户端软件,因此出现了许许多多的第三方管理软件,下面我简单介绍几个,感兴趣的朋友可以自己下载尝试一下:
SQLyog
这是一个非常轻巧灵活的MySQL客户端软件,界面整洁、干净友好,大部分开发人员都应该听说或使用过,可以直接查看数据库目录结构,建库建表灵活,支持SQL脚本导入导出、数据备份恢复等常见功能,语法高亮、自动补全等也都非常不错,对于日常MySQL管理来说,是一个非常不错的工具:
Navicat
这也是一个非常不错的MySQL客户端管理软件,界面简洁、功能强大,基本使用方式和SQLyog差不多,可以直接手动建库建表、设计视图(包括字段类型、主外键关系、触发器等),支持数据库建模、SQL脚本导入导出、数据恢复和备份等常见功能,对于MySQL管理来说,也是一个非常不错的工具:
Workbench
这是MySQL官方自带的一个客户端软件,可以直接到官网下载安装,免费、跨平台,专门为MySQL量身定制,兼容性良好,支持数据库建模(ER模型、前向和反向工程)、数据迁移(低版本到高版本)、恢复与备份等常见功能,对于MySQL日常管理来说,也是一个非常不错的工具:
phpMyAdmin
这是一个专门为php开发人员设计的MySQL管理工具,基于Web浏览器运行,界面干净、整洁友好,可以很方便的查阅管理日常数据库,建库建表也非常容易,如果你是一个专业的php开发人员,那么phpMyAdmin就是一个非常不错的管理工具,缺点就是在数据的备份和恢复上不是很方便:
DataGrip
这是一个比较全能的数据库客户端软件,支持目前几乎所有的主流数据库,包括MySQL,Oracle,SQL Server等,界面友好、干净整洁,日常查询、建库建表、建模设计、备份恢复、数据迁移等,这个软件都能很好支持,语法高亮、自动补全等功能也都非常不错,对于数据库管理来说,也是一个非常不错的工具:
当然,还有许多其他MySQL客户端管理软件,像HeidiSQL,DBeaver等也都非常不错,这里就不一一介绍了,基本功能和前面的这5个软件差不多,只要你熟悉一下使用方式,很快就能掌握的。至于哪个好,哪个更优秀,这个也没有什么明确标准,只要适合自己就行,如果你非常熟悉MySQL的话,也可以使用命令行工具,效果是一样的,网上也有相关资料,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
MySQL的管理维护工具非常多,除了系统自带的命令行管理工具之外,还有许多其他的图形化管理工具,这里我介绍几个经常使用的MySQL图形化管理工具,供大家参考。
1、phpMyAdmin
phpMyAdmin是最常用的MySQL维护工具,是一个用PHP开发的基于Web方式架构在网站主机上的Mysql管理工具,支持中文,管理数据库非常方便。不足之处在于对大数据库的备份和恢复不方便。
2、MySQLDumper
MySQLDumper使用PHP开发的MySQL数据库备份恢复程序,解决了使用PHP进行大数据库备份和恢复的问题,数百兆的数据库都可以方便的备份恢复,不用担心网速太慢导致中间中断的问题,非常方便易用。
这个软件是德国人开发的,还没有中文语言包。
3、Navicat
Navicat是一个桌面版MySQL数据库管理和开发工具。和微软SQLServer的管理器很像,易学易用。
Navicat使用图形化的用户界面,可以让用户使用和管理更为轻松。支持中文,有免费版本提供。
4、MySQL GUI Tools
MySQL GUI Tools是MySQL官方提供的图形化管理工具,功能很强大,值得推荐,可惜的是没有中文界面。
5、MySQL ODBC Connector
MySQL官方提供的ODBC接口程序,系统安装了这个程序之后,就可以通过ODBC来访问MySQL,这样就可以实现SQLServer、Access和MySQL之间的数据转换,还可以支持ASP访问MySQL数据库。
6、MySQL Workbench
MySQL Workbench是一个统一的可视化开发和管理平台,该平台提供了许多高级工具,可支持数据库建模和设计、查询开发和测试、服务器配置和监视、用户和安全管理、备份和恢复自动化、审计数据检查以及向导驱动的数据库迁移。
MySQL Workbench是MySQL AB发布的可视化的数据库设计软件,它的前身是 FabForce 公司的 DDesigner 4。
MySQL Workbench 为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。
它包含了用于创建复杂的数据建模ER模型,正向和逆向数据库工程,也可以用于执行通常需要花费大量时间和需要的难以变更和管理的文档任务。MySQL工作台可在Windows,Linux和Mac上使用。
7、SQLyog
SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库。
SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。
MySQL面试题(无答案版) 中高级必看
1、mysql记录存储:mysql的数据是怎么组织的
2、页内记录的维护(顺序保证/插入策略/页内查询)
3、MySQL内存管理(页面管理、页面淘汰、LRU):全表扫描对内存有什么影响? 如何避免热数据被淘汰? 没有空闲页怎么办?
4、InnoDB 加锁的过程是如何实现的?常见锁问题有那些?
5、MVCC是什么?如何实现多版本控制?如何解决写冲突?
6、回滚日志Undo log如何实现多版本控制与保证事务的原子性?
7、undo log如何清理,为何InnoDB select count(*) 这么慢?
8、重做日志Redo log如何实现事务持久性?
9、InnoDB行级锁、间隙锁、表级锁如何实现的?
10、InnoDB加锁过程如何实现的?
11、海量数据下 主键如何设计?
12、聚集索引、二级索引与联合索引具备哪些特点?
13、在进行索引优化时应该注意哪些问题/
14、MySQL如何进行库表的优雅设计?
15、如何实现数据备份之延时库部署
16、MySQL如何高效实现数据冗余部署
17、MySQL高可用方案有哪些
数据库该怎么学习,纯小白?
相信很多数据库入门的新手们在学习数据库方面都存在困惑,本文列出了一个非常完整的数据库学习路线,并对数据库学习过程中的细节进行详细指导。希望能够成为大家学习数据库过程中一份纲领性的教程。
本回答来自:数据库怎么学?数据库学习零基础入门指导_树懒学堂
数据库知识要点学习
新手学习数据库务必把握的知识要点:
数据库的安装下载:了解数据库的环境变量,文件目录构造。
数据库网络服务器的启动,登陆与登出。
数据库常用命令及语法标准。
数据库基本数据类型与数据表的实际操作。比如,数据表的增删、单表查寻、多表查询等。
数据库运算符和函数,比如,日期函数,时间函数,信息函数,聚合函数,数据加密涵数,自定义函数等。
数据库存储过程,存储过程的调度。
数据库每个存储引擎的特性。
数据库事务管理的定义和应用等。
数据库管理权限和用户管理等。
数据库学习材料推荐:
1.《MySQL必知必会》
这书讲的十分全,从基本要素,到查寻到插入新建表,用户的管理方法,都是有实际的事例,特别适合没有基础的同学们来学习Mysql,总而言之这本书学习的方式 便是:
掌握数据库的基本概念
按照示例进行练习
2.《SQL必知必会》
纯新手必读,这也是Amazon上最热销的SQL书籍的汉化版,写的很轻快,定义十分清晰。这本书用于学习关系型数据库也非常好,基本概念比大部头的教材内容说得清晰得多。
网站推荐:
树懒学堂_一站式数据知识学习平台