mysql分表的3种方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql分表的3种方法相关的知识,希望对你有一定的参考价值。

一,先说一下为什么要分表

分表的目的就在于此,减小数据库的负担,缩短查询时间

mysql中有一种机制是表锁定和行锁定,为什么要出现这种机制,是为了保证数据的完整性。

 

很显然mysql对这种情况的处理是,一种是表锁定(myisam存储引擎),一个是行锁定(innodb存储引擎)

表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。

行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这条数据进行操作

 

根据用户的ID来判断这个用户的聊天信息放到哪张表里面,你可以用hash的方式来获得,可以用求余的方式来获得。

<?php  

  function get_hash_table($table,$userid) {  

    $str = crc32($userid);  

    if($str<0){  

       $hash = "0".substr(abs($str), 0, 1);  

     }else{  

       $hash = substr($str, 0, 2);  

     }  

     return $table."_".$hash;  

  }  

  echo get_hash_table(‘message‘,‘user18991‘);      //结果为message_10  

  echo get_hash_table(‘message‘,‘user34523‘);    //结果为message_13  

?>  

 

以上是关于mysql分表的3种方法的主要内容,如果未能解决你的问题,请参考以下文章

(转)mysql分表的3种方法

mysql分表的3种方法

mysql分表的3种方法

MySQL分表的3种方法

mysql分表的3种方法

mysql分表的三种方法