免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 22505 | 回复: 0
打印 上一主题 下一主题

【话题讨论】研究 MySQL 5.6 查询问题(获奖名单已公布-2013-6-19) [复制链接]

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
1 [报告]
发表于 2013-05-20 22:27 |显示全部楼层
本帖最后由 jieforest 于 2013-05-20 22:28 编辑

在回答问题前我先对MySQL 5.6做一番说明。
MySQL 5.6与之前的5.5版或5.1版是兼容的,也就是说,在5.5版或5.1版建立的数据库,可以轻松迁移到5.6版。今年4月份的时候,我在Windows Server 2008系统下部署了MySQL 5.6,把原先的数据库平滑地迁移到5.6版之上,没有任何问题。我安装的是mysql-5.6.10-winx64.zip,大约216MB,值得一提的是,压缩包里包含了MySQL Server、MySQL Workbench、MySQL Notifier、MySQL for Excel。

1、你在使用新版本查询中曾遇见哪些问题?是怎么解决的?
MySQL 5.6所做的改进有很多,我在写查询脚本是遇到过不少新特性。
1)MySQL 5.6对于只读性能做了很大的优化。比如:
SET autocommit = 1;
SELECT testtable1.`name` FROM testtable1 WHERE id=123;
可以改成这样:
SET autocommit = 0;
START TRANSACTION READ ONLY;
SELECT testtable1.`name` FROM testtable1 WHERE id=123;
COMMIT;

2)MySQL 5.6支持全文本检索。我们可以这样创建表:
create table movies(
  `id` int unsigned auto_increment primary key,
  `moviename` varchar(64),
  `intro` varchar(4000),
  `play_url` varchar(64),
  fulltext(`intro`)
) engine=innodb;
以后,在搜索intro中的字符串时,效率会高得多。

2、你一般如何对你的数据库查询进行优化?
基本上,有以下几点:
1)使用临时表来加速查询;
2)合理地使用索引;
3)对于数据记录很大的表,对查询进行优化时应尽量避免全表扫描;
4)尽量避免大事务操作,提高系统并发能力;
5)尽量避免向客户端返回大数据量,若数据量过大,应该考虑客户端实现分页查询。
……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP