Jadual Kandungan
1亿条数据在PHP中实现Mysql数据库分表100张,mysql100张
Rumah php教程 php手册 1亿条数据在PHP中实现Mysql数据库分表100张,mysql100张

1亿条数据在PHP中实现Mysql数据库分表100张,mysql100张

Jun 13, 2016 am 08:57 AM
100000000 mysql php jadual kecil wujud capai data pangkalan data

1亿条数据在PHP中实现Mysql数据库分表100张,mysql100张

当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度。笔者做了一个简单的尝试,1亿条数据,分100张表。具体实现过程如下:

首先创建100张表:

<span><span> 1</span> <span>$i=0;
</span><span> 2</span> while($i<span><</span><span>=99</span><span>){
</span><span> 3</span> <span>echo "$newNumber \r\n";
</span><span> 4</span> <span>$sql</span><span>="CREATE TABLE `code_"</span><span>.$i."` (
</span><span> 5</span> <span> `full_code` char(10) NOT NULL,
</span><span> 6</span> <span> `create_time` int(10) unsigned NOT NULL,
</span><span> 7</span> <span> PRIMARY KEY  (`full_code`),
</span><span> 8</span> <span>) ENGINE</span><span>=MyISAM </span><span>DEFAULT CHARSET</span><span>=utf8";
</span><span> 9</span> <span>mysql_query($sql);
</span><span>10</span> <span>$i++; </span></span>
Salin selepas log masuk

下面说一下我的分表规则,full_code作为主键,我们对full_code做hash

函数如下:

<span><span>1</span> <span>$table_name=get_hash_table('code',$full_code);
</span><span>2</span> <span>function get_hash_table($table,$code,$s=100){
</span><span>3</span> <span>$hash = sprintf("%u", crc32($code));
</span><span>4</span> <span>echo $hash;
</span><span>5</span> <span>$hash1 = intval(fmod($hash, $s));
</span><span>6</span> <span> return $table."_".$hash1;
</span><span>7</span> } </span>
Salin selepas log masuk

这样插入数据前通过get_hash_table获取数据存放的表名。

最后我们使用merge存储引擎来实现一张完整的code表

<span><span>1</span> <span>CREATE TABLE IF NOT EXISTS `code` (  
</span><span>2</span> <span>`full_code` char(10) NOT NULL,
</span><span>3</span> <span>`create_time` int(10) unsigned NOT NULL,
</span><span>4</span> <span>INDEX(full_code)  
</span><span>5</span> ) TYPE=MERGE UNION=(code_0,code_1,code_2.......) INSERT_METHOD=LAST ; </span>
Salin selepas log masuk

这样我们通过select * from code就可以得到所有的full_code数据了。

 

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
<🎜> obscur: Ekspedisi 33 - Cara mendapatkan pemangkin Chroma yang sempurna
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1677
14
Tutorial PHP
1278
29
Tutorial C#
1257
24
Apakah kepentingan fungsi session_start ()? Apakah kepentingan fungsi session_start ()? May 03, 2025 am 12:18 AM

session_start () iscrucialinphpformanaginguserSessions.1) itinitiatesanewsessionifnoneexists, 2) resumeSanexistingsession, dan3) setSasessionCookieforcontinuityAcrossrequests, enableingApplicationeUseUshenticationandPersonalConizedConizedContentContentContentContentContentContentContentContentContentContentContentC.

Komposer: Pengurus Pakej untuk Pemaju PHP Komposer: Pengurus Pakej untuk Pemaju PHP May 02, 2025 am 12:23 AM

Komposer adalah alat pengurusan ketergantungan untuk PHP, dan menguruskan kebergantungan projek melalui fail komposer.json. 1) parse composer.json untuk mendapatkan maklumat ketergantungan; 2) Mengurangkan kebergantungan untuk membentuk pokok pergantungan; 3) Muat turun dan pasangkan kebergantungan dari Packagist ke Direktori Vendor; 4) Menjana fail komposer.lock untuk mengunci versi ketergantungan untuk memastikan konsistensi pasukan dan kebolehkerjaan projek.

Apakah kelebihan menggunakan MySQL ke atas pangkalan data hubungan lain? Apakah kelebihan menggunakan MySQL ke atas pangkalan data hubungan lain? May 01, 2025 am 12:18 AM

Sebab mengapa MySQL digunakan secara meluas dalam pelbagai projek termasuk: 1. Prestasi tinggi dan skalabilitas, menyokong pelbagai enjin penyimpanan; 2. Mudah untuk digunakan dan mengekalkan, konfigurasi mudah dan alat yang kaya; 3. Ekosistem yang kaya, menarik sejumlah besar sokongan alat komuniti dan pihak ketiga; 4. Sokongan silang platform, sesuai untuk pelbagai sistem operasi.

Pembinaan Persekitaran Laravel dan Konfigurasi Asas (Windows/Mac/Linux) Pembinaan Persekitaran Laravel dan Konfigurasi Asas (Windows/Mac/Linux) Apr 30, 2025 pm 02:27 PM

Langkah -langkah untuk membina persekitaran Laravel pada sistem operasi yang berbeza adalah seperti berikut: 1.Windows: Gunakan XAMPP untuk memasang PHP dan komposer, konfigurasikan pembolehubah persekitaran, dan pasang Laravel. 2.MAC: Gunakan homebrew untuk memasang PHP dan komposer dan pasang Laravel. 3.Linux: Gunakan Ubuntu untuk mengemas kini sistem, pasang PHP dan komposer, dan pasang Laravel. Perintah dan laluan khusus setiap sistem adalah berbeza, tetapi langkah -langkah teras adalah konsisten untuk memastikan pembinaan lancar persekitaran pembangunan Laravel.

Mysql vs. Oracle: Memahami Pelesenan dan Kos Mysql vs. Oracle: Memahami Pelesenan dan Kos May 03, 2025 am 12:19 AM

MySQL menggunakan lesen GPL dan komersil untuk projek sumber kecil dan terbuka; Oracle menggunakan lesen komersial untuk perusahaan yang memerlukan prestasi tinggi. Lesen GPL MySQL adalah percuma, dan lesen komersil memerlukan pembayaran; Yuran lesen Oracle dikira berdasarkan pemproses atau pengguna, dan kosnya agak tinggi.

Cara menetapkan kesan putaran elemen HTML Cara menetapkan kesan putaran elemen HTML Apr 30, 2025 pm 02:42 PM

Bagaimana untuk menetapkan kesan putaran elemen dalam HTML? Ia boleh dicapai menggunakan CSS dan JavaScript. 1. Harta transformasi CSS digunakan untuk putaran statik, seperti berputar (45DEG). 2. JavaScript boleh mengawal putaran secara dinamik, yang dilaksanakan dengan mengubah atribut Transform.

MySQL vs phpmyadmin: Memahami perbezaan utama MySQL vs phpmyadmin: Memahami perbezaan utama May 06, 2025 am 12:17 AM

MySQL adalah sistem pengurusan pangkalan data, dan phpmyadmin adalah alat web untuk menguruskan MySQL. 1.MYSQL digunakan untuk menyimpan dan menguruskan data dan menyokong operasi SQL. 2.PhpMyAdmin menyediakan antara muka grafik untuk memudahkan pengurusan pangkalan data.

Navicat dan Mysql: Perkongsian yang sempurna Navicat dan Mysql: Perkongsian yang sempurna May 05, 2025 am 12:09 AM

Navicat dan MySQL adalah perlawanan yang sempurna kerana mereka dapat meningkatkan pengurusan pangkalan data dan kecekapan pembangunan. 1.Navicat memudahkan operasi MySQL dan meningkatkan kecekapan kerja melalui antara muka grafik dan penjanaan automatik penyataan SQL. 2.Navicat menyokong pelbagai kaedah sambungan, yang memudahkan pengurusan tempatan dan jauh. 3. Ia menyediakan keupayaan penghijrahan data dan penyegerakan data yang kuat, sesuai untuk penggunaan lanjutan. 4.Navicat membantu dengan pengoptimuman prestasi dan amalan terbaik seperti sandaran biasa dan pengoptimuman pertanyaan.

See all articles