分表技術
分表包括水平分表和垂直分表
分表技術有(水平分割和垂直分割)
當一張越來越大時候,即使新增索引還慢的話,我們可以使用分表
水平分表
以qq使用者表來具體的說明一下分表的操作.
思路如圖 :
首先我建立三張表 user0 / user1 /user2 , 然後我再建立 uuid表,該表的作用就是提供自增的id,
思路是根據ID除以3取餘,餘數為0/1/2不同,分別在三張表中,插入和查詢都需要走這一步。
走程式碼:(韓順平老師的PHP程式碼)
create table user0(
id int unsigned primary key ,
name varchar(32) not null default '',
pwd varchar(32) not null default '')
engine=myisam charset utf8;
create table user1(
id int unsigned primary key ,
name varchar(32) not null default '',
pwd varchar(32) not null default '')
engine=myisam charset utf8;
create table user2(
id int unsigned primary key ,
name varchar(32) not null default '',
pwd varchar(32) not null default '')
engine=myisam charset utf8;
create table uuid(
id int unsigned primary key auto_increment)engine=myisam charset utf8;
編寫addUser.php
<?php
//註冊一個使用者
$con=mysql_connect("localhost","root","root");
if(!$con){
die("連線失敗!");
}
mysql_select_db("temp",$con);
$name=$_GET['name'];
$pwd=$_GET['pwd'];
//這時我們先獲取使用者id,id是從uuid表獲取
$sql="insert into uuid values(null)";
if(mysql_query($sql,$con)){
$id=mysql_insert_id();
}
//計算表名,就是,你應該把這個使用者放入到哪個表
$talname='user'.$id%3;
$sql="insert into {$talname} values ($id,'$name','$pwd')";
if(mysql_query($sql,$con)){
echo '新增使用者到 '.$talname.'ok';
}
mysql_close($con);
//
<?php
//註冊一個使用者
$con=mysql_connect("localhost","root","root");
if(!$con){
die("連線失敗!");
}
mysql_select_db("temp",$con);
$id=intval($_GET['id']);
//計算表名
$tabname='user'.$id%3;
$sql="select pwd from {$tabname} where id=$id";
$res=mysql_query($sql,$con);
if($row=mysql_fetch_assoc($res)){
echo "在{$tabname}. 中發現 id號為 {$id}";
}
//.....
垂直分割
示意圖:
一句話: 如果一張表某個欄位,資訊量大,但是我們很少查詢,則可以考慮把這些欄位,單獨的放入到一張表中,這種方式稱為垂直分割.
相關文章
- 強!分庫分表與分散式資料庫技術選項分析分散式資料庫
- 中文分詞技術中文分詞
- 【ShardingSphere技術專題】「ShardingJDBC」SpringBoot之整合ShardingJDBC實現分庫分表(JavaConfig方式)JDBCSpring BootJava
- SAP UI 搜尋分頁技術UI
- 《深入react技術棧》之表單React
- 技術分享 | OceanBase 裡的 BUFFER 表
- 記憶體技術詞彙表記憶體
- NLP第3章 中文分詞技術中文分詞
- 1.2 分詞技術與演算法分詞演算法
- 分投趣Fintoch系統智慧合約開發技術丨分投趣Fintoch技術開發示例
- 匯入地址表鉤取技術解析
- 分投趣(Fintoch)開發丨分投趣原始碼系統技術開發丨Solidity技術語言原始碼Solid
- 深度解析:分投趣fintoch模式系統開發技術(成熟合約技術)模式
- 1032 挖掘機技術哪家強 (20 分)javaJava
- 中文搜尋引擎技術揭密:中文分詞中文分詞
- 汪子熙的SAP技術文章分類合集
- 24-PHP+MySQL分頁技術詳解PHPMySql
- HDC技術分論壇:ArkCompiler原理解析Compile
- 前後端分離技術路線圖後端
- 分庫分表系列:分庫分表的前世今生
- 分庫分表
- 每天5分鐘玩轉Docker容器技術(二)Docker
- 十分鐘明白什麼是容器技術
- 一文解析Redis讀寫分離技術Redis
- 地平線:黎明時分中的雲渲染技術
- GIFTO背後區塊鏈技術的分類區塊鏈
- 一文淺談“讀寫分離”技術
- 囊括13個方面,Linux 容器技術一覽表!Linux
- OCR識別技術—財務報表識別
- mysql 大表drop和truncate 技術風險點MySql
- 分庫分表注意
- [Mysql]分庫分表MySql
- 資料倉儲(8)數倉事實表和維度表技術
- 大資料簡介,技術體系分類整理大資料
- 三分鐘,快速瞭解區塊鏈技術!區塊鏈
- 技術分享 | LSM-Tree 和 OceanBase 分層轉儲
- 技術乾貨|如何實現分鐘級故障管理
- 三分鐘看完關於 ChatGPT 的技術概括ChatGPT