楼主: arron刘

【话题讨论】MySQL必知必会 谈谈你对mysql的了解

[复制链接]
论坛徽章:
1
迷宫蛋
日期:2013-04-24 10:07:00
31#
发表于 2013-7-10 13:52 | 只看该作者
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。

使用道具 举报

回复
论坛徽章:
7
咸鸭蛋
日期:2012-06-11 16:11:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:072013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31喜羊羊
日期:2015-03-10 14:01:43喜羊羊
日期:2015-03-16 11:00:26
32#
发表于 2013-7-10 14:18 | 只看该作者
目前大多数应用都是单机性能过剩,所以纷纷虚拟化,以免浪费性能、能耗、机位
唯一例外就是数据库应用了,它是单机再强都不够用
但是多机并起来模拟为一台强大的“单机”,还是很难(技术有,但是都不方便而且性能不是线性提高)
如果mysql能方便地搭建 多写多读 机制,就牛了

使用道具 举报

回复
论坛徽章:
2
ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:15
33#
发表于 2013-7-10 17:42 | 只看该作者
haitao所说的,我深有同感。全局id,跨库join,跨库事务等,都是比较麻烦的问题

使用道具 举报

回复
论坛徽章:
3
鲜花蛋
日期:2013-06-05 12:33:11ITPUB社区12周年站庆徽章
日期:2013-08-13 09:43:23林肯
日期:2013-09-12 15:57:33
34#
发表于 2013-7-11 01:28 | 只看该作者
本帖最后由 mcyeah 于 2013-7-11 01:29 编辑

1.首先谈谈你对mysql的了解?
       Mysql是一款主流的开源数据库,定位在轻量级、小体积、速度快,随着被应用的越来越广泛,被数据库方面的老大Oracle盯上,最终将其收购。现在还有几个开源分支发展的不错,比如:percona、MariaDB,大有提供更新更好的特性替代mysql之势。比较糗的一件事是当年自己初用mysql的时候,一直以为mysql只能命令行操作,因为当时已经学过Oracle和sql server,觉得GUI操作高效便捷,非常好。后来才发现,其实开源的不开源的图形化工具相当之多...
2.在 LAMP 或 LNMP 架构中,MySQL 的定位到底是怎样的?
       LAMP或LNMP主要是概括通常搭建一个非大型非海量数据网站的实现架构,采用linux系统,采用apache或nginx作为web服务器,用Mysql做数据库,用PHP语言进行web应用开发。Mysql在这里的定位就是为中小型的网站提供可靠的,高效的,轻量的数据存储服务。
3.mysql类型 char、varchar 与 text 有什么区别,平时如何的选择?
char是定长字符串,如果字符长度不够会自动补空格,varchar是可变长度字符串,不会自动补空格,在实际编程中为了减小空间占用,采用varchar比较多,用varchar会加大编程的复杂度,这个要做权衡取舍。text是用二进制形式存储文本,用于存储大文本

使用道具 举报

回复
论坛徽章:
0
35#
发表于 2013-7-11 13:06 | 只看该作者
个人一点点了解:
1.首先谈谈你对mysql的了解?
接触mysql有1年左右,总得来说入门简单,有些基础的同学学习语法直接可以使用,但是想更深入是有些难度的,
mysql适合初学者书籍不是很多,联机文档很重要,但看起来有些晦涩,毕竟借助前人的总结经验对学习者有一定
少走弯路裨益,MySQL支持Stored procedure/trigger/view/cursor可以完全实现业务逻辑要求,常用引擎InnoDB,
MyISAM,Memory(现在也许大部分被memcache替换),理解运行原理/优缺点/区别/索引(聚集、非聚集、普通索引)等.
2.在 LAMP 或 LNMP 架构中,MySQL 的定位到底是怎样的?
mysql仍是作为业务数据存储软件,不会单纯使用LNMP或LAMP,一般会加memcache,作为MySQL二级缓存,减少磁盘IO,加快检索与DML
3.mysql类型 char、varchar 与 text 有什么区别,平时如何的选择?
char(N) 固定字段长度,存储字符长度<N,右空格补充,>N:字符将被截取 占磁盘空间:N*(字符集),
具体根据业务需要,如身份证号,姓别等固定长度,可以用之
varchar(N) 可变长字符长度,占用磁盘空间相对较少,占磁盘空间:N*(字符集)+1(用于存放字符串实际长度),如,姓名,描述等;
text,文本存放,最大长度:65535,存放描述性语言,字符串汇总等;
MyISAM:建议使用char
InnoDB:建议使用varchar
text根据业务需求,是否一定需要,毕竟占磁盘空间,检索速度,IO,网络流量,只能建立前缀索引(只有MyISAM支持)等;
速度上:一般char比varchar快

使用道具 举报

回复
论坛徽章:
0
36#
发表于 2013-7-11 16:55 | 只看该作者
受教啊。。。希望多搞点这样的话题,大家一起讨论!!!

使用道具 举报

回复
论坛徽章:
55
体育版块博采纪念徽章
日期:2008-10-06 11:55:58双黄蛋
日期:2011-06-08 14:43:03茶鸡蛋
日期:2011-06-08 14:50:52迷宫蛋
日期:2013-07-03 14:58:31
37#
发表于 2013-7-12 10:22 | 只看该作者
本帖最后由 linjia828 于 2013-7-12 10:24 编辑

1.首先谈谈你对mysql的了解?
MySQL是一个能够支撑高并发快速响应的RDBMS,非常实用用作互联网应用的数据库,丰富的引擎能够支撑互联网绝大部分应用。MySQL能够支撑大量的快速请求,但是面对复杂的逻辑运算就显得非常拙计啊....显然它不是oracle,当然面对大量的并发请求时,单单监听器的请求连接的开销就会吓傻oracle(在不存在长连接,不存在连接池的情况下)。物有所长,所以我觉得MySQL是一款能够支撑大量需要快速响应的简单事务的RDBMS。

2.在 LAMP 或 LNMP 架构中,MySQL 的定位到底是怎样的?
两种架构中都有M了,还需要说明什么吗?明显就是最关键的底层的rdbms存储层。当然现在越来越多的nosql出现也能在一定程度上替换或者弥补它的一些不足,像redis像mongodb等等,但是在短期内,MySQL的地位还是不可替代的。

3.mysql类型 char、varchar 与 text 有什么区别,平时如何的选择?
char是定长字符数据类型,最多存储255个字符
varchar是变长字符数据类型,最多存储65535个字节长度数据
text是变长字符数据类型(大数据),最大可存储4G+4B长度的数据(bigtext),使用时需要注意排序长度以及最大包体等设置,不允许使用内存临时表,当长度超过一定范围时,MySQL把它当成一个外部对象处理等等等等.....
一般来说如果长度比较一致我会推荐使用char,反之是varchar。在myisam下使用char更多,因为它偏移量是固定的,能够使myisam更快速寻址,在innodb下更多的是使用varchar。当然使用varchar时也不能因为是变长就随便设置个超大值,因为在内存中预分配空间地址是按最大空间分配。
至于text,如果不是必须我不太爱用,因为使用text意味着大数据,大数据意味着数据页分裂更频繁,带来的是读写性能的下降。在不得不使用的时候,我也会根据具体情况来看是否需要把text分裂,独立成一张表,这时候范式化跟反范式化都抛一边去,符合业务场景以及性能指标最重要。

that's all。

使用道具 举报

回复
论坛徽章:
0
38#
发表于 2013-7-12 16:12 | 只看该作者
学习了

使用道具 举报

回复
论坛徽章:
11
奥运纪念徽章
日期:2012-11-28 09:37:30马上加薪
日期:2014-03-20 16:14:11马上有对象
日期:2014-03-20 16:14:11马上有钱
日期:2014-03-20 16:14:11马上有房
日期:2014-03-20 16:14:11马上有车
日期:2014-03-20 16:13:24ITPUB社区12周年站庆徽章
日期:2013-10-17 13:56:39ITPUB社区12周年站庆徽章
日期:2013-10-08 17:44:422013年新春福章
日期:2013-02-25 14:51:24ITPUB官方微博粉丝徽章
日期:2012-12-11 17:06:47
39#
发表于 2013-7-14 21:23 | 只看该作者
1.首先谈谈你对mysql的了解?
虽然没有oracle强大,但是免费开源,由社区主导开发。

2.在 LAMP 或 LNMP 架构中,MySQL 的定位到底是怎样的?
感觉mysql在开源阵容是非常受欢迎的,但是商业应用却不多。

3.mysql类型 char、varchar 与 text 有什么区别,平时如何的选择?
varchar用的最多,text主要用来存储大的内容。

使用道具 举报

回复
论坛徽章:
0
40#
发表于 2013-7-15 11:01 | 只看该作者
1.首先谈谈你对mysql的了解?
mysql数据库没怎么正式用过。多年之前配置Bugzilla的时候用过,当时印象比较深的是,它的数据表都是一个个文件,而且备份数据库的时候,备份文件其实就是一堆文本全是sql语句。

2.在 LAMP 或 LNMP 架构中,MySQL 的定位到底是怎样的?
免费套件组的一员,我们本来有个项目要走LAMP的,结果取消了……没有太多的理解。

3.mysql类型 char、varchar 与 text 有什么区别,平时如何的选择?
mysql这几个数据类型跟sqlServer有不同吗。char是定长,用得比较多的应该是varchar吧。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表