分享几个提高MYSQL性能的方法

栏目: 编程语言 发布于: 2014-05-02 12:43:04

分享几个提高MYSQL性能的方法,不够全面,还望得到大家的补充!错误之处还请拍砖!

1、分库分表

很明显,一个主表(也就是很重要的表,例如用户表)无限制的增长势必严重影响性能,分库与分表是一个很不错的解决途径,也就是性能优化途径,现在的案例是我们有一个1000多万条记录的用户表members,查询起来非常之慢,同事的做法是将其散列到100个表中,分别从members0到members99,然后根据mid分发记录到这些表中,牛逼的代码大概是这样子:

<?php 
for($i=0;$i< 100; $i++ ){ 
//echo "CREATE TABLE db2.members{$i} LIKE db1.members<br>"; 
echo "INSERT INTO members{$i} SELECT * FROM members WHERE mid%100={$i}<br>"; 
} 
?> 

2、不停机修改mysql表结构

同样还是members表,前期设计的表结构不尽合理,随着数据库不断运行,其冗余数据也是增长巨大,同事使用了下面的方法来处理:

先创建一个临时表:
/*创建临时表*/
CREATE TABLE members_tmp LIKE members

然后修改members_tmp的表结构为新结构,接着使用上面那个for循环来导出数据,因为1000万的数据一次性导出是不对的,mid是主键,一个区间一个区间的导,基本是一次导出5万条吧,这里略去了
接着重命名将新表替换上去:

/*这是个颇为经典的语句哈*/
RENAME TABLE members TO members_bak,members_tmp TO members;

就是这样,基本可以做到无损失,无需停机更新表结构,但实际上RENAME期间表是被锁死的,所以选择在线少的时候操作是一个技巧。经过这个操作,使得原先8G多的表,一下子变成了2G多

另外还讲到了mysql中float字段类型的时候出现的诡异现象,就是在pma中看到的数字根本不能作为条件来查询.感谢zj同学的新鲜分享。

您可能感兴趣的文章

  • 页面应该如何加载javascript才能提高网站性能
  • 提高PHP性能的实用方法总结
  • MYSQL性能优化分享(分库分表)
  • 如何提高肠胃的吸收能力,肠胃功能差如何进补
  • PHP检查浏览器参数防止被SQL注入的函数
  • 用PHP函数memory_get_usage获取当前PHP内存消耗量以实现程序的性能优化
  • 提高用户体验必须从分析用户视觉感官上入手
  • MySQL使用limit 1提高查询效率
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。
转载请注明:文章转载自 [http://www.php230.com]
本文标题:分享几个提高MYSQL性能的方法
IT技术书籍推荐:
细说PHP(第2版)
细说PHP(第2版)
高洛峰 (作者)
《细说PHP(第2版)》内容简介:PHP是开发Web应用系统最理想的工具,易于使用、功能强大、成本低廉、高安全性、开发速度快且执行灵活。全书以实用为目标设计,包含PHP开发最主流的各项技术,对每一个知识点都进行了深入详细的讲解,并附有大量的实例代码,图文并茂。系统地介绍了PHP的相关技术及其在实际Web开发中的应用。 《细说PHP(第2版)》共六个部分,分为30个章节,每一章都是PHP独立知识点的总结。内容涵盖了动态网站开发的前台技术(HTML+CSS)、PHP编程语言的语法、PHP的常用功能模块和实用技巧、MySQL数据库的设计与应用、PHP 面向对象的程序设计思想、数据库抽象层PDO、Smarty模板技术、Web开发的设计模式、自定义框架BroPHP、Web项目开发整个流程等目前PHP开发中最主流的技术。每一章中都有大量的实用示例,以及详尽的注释,加速读者的理解和学习,也为每章的技术点设置了大量的自测试题。最后以一个比较完整的、采用面向对象思想,以及通过MVC模式设计,并结合Smarty模板,基于BroPHP框架的CMS系统为案例,详细介绍了Web系统开发从设计到部署的各个细节,便于更好地进行开发实践。
最新互联网资讯