- 论坛徽章:
- 32
|
本帖最后由 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)尽量避免向客户端返回大数据量,若数据量过大,应该考虑客户端实现分页查询。
…… |
|