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  

?>  

原文地址:https://www.cnblogs.com/feixiablog/p/8098889.html