Mysql数据类型的详细总结
本篇文章给大家带来的内容是关于Mysql数据类型的详细总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
在进行数据存储之前,我们先了解一下mysql的数据类型。数据类型是什么呢?数据类型就是指列;存储过程中参数,表达式和局部变量的数据特征,它决定了数据的存储方式,代表了不同的信息类型。(推荐课程:MySQL教程)
整型:
整型常指整数,但是在整型中可以细分5种类型,TINYNIT,SMALLINT,MEDIUMINT,INT,BIGINT。
类型 | 存储范围 | 占用字节 |
---|---|---|
TINYINT | 有符号值:-128到127(-2^7 到 2^7-1) 无符号值:0到255 (0 到 2^8-1) |
1 |
SMALLINT | 有符号值: -32768到32767 (-2^15 到 2^15-1) 无符号值:0 到 65535 (0 到 2^16-1) |
2 |
MEDIUMINT | 有符号值: -8388608 到 8388607 (-2^23 到 2^23-1) 无符号值:0 到16777215 (2^24-1) |
3 |
INT | 有符号值 : -2147483648到2147483647 (-2^31 到 2^31-1) 无符号值: 0 到 4294967295 (2^32-1) |
4 |
BIGINT | 有符号值 :-9223372036854775808 到 9223372036854775807 (-2^63 到 2^63-1) 无符号值:0 到 18446744073709551615 (2^64-1) |
8 |
浮点数
浮点数常指具有小数的数字,浮点数种分两种类型,FLOAT单精度浮点数,DOUBLE双精度浮点数。双精度浮点数的精准度为单精度的浮点数的十倍,但是占用的内存就会更大。
类型 | 存储范围 |
---|---|
FLOAT[(M,D)] |
-3.402823466E+38 到 -1.175494351E-38,0和1.175494351E-38 到 3.402823466E+38 |
DOUBLE | -1.7976931348623157E+308 到 -2.2250738585072014E-308,0和2.2250738585072014E-308 到 1.7976931348623157E+308 |
字符型
字符型是我们非常常用的一种类型,比如字符串。字符型具有8个类型。
类型 | 存储范围 |
---|---|
CHAR(M) | M个字节,其中M为0<=M<=255 |
VARCHAR(M) | L+1个字节,其中L<=M且0<=M<=65536 |
TINYTEXT | L+1个字节,其中L<2^8 |
TEXT | L+2个字节,其中L<2^16 |
MIUDMTEXT | L+3个字节,其中L<2^24 |
LONGTEXT | L+4个字节,其中L<2^32 |
ENUM('val','val') | 1或2个字节,取决枚举的个数(最多65535个值) |
SET('val','val','val') | 1,2,3,4或8个字节,取决于set成员的数目(最多64个) |
这一节我们先了解清楚mysql的数据类型,下一节我们学习如何创建一个数据表。
Atas ialah kandungan terperinci Mysql数据类型的详细总结. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Pengoptimuman prestasi pertanyaan MySQL perlu bermula dari titik teras, termasuk penggunaan indeks rasional, pengoptimuman penyata SQL, reka bentuk struktur meja dan strategi pembahagian, dan penggunaan alat cache dan pemantauan. 1. Gunakan indeks dengan munasabah: Buat indeks pada medan pertanyaan yang biasa digunakan, elakkan pengimbasan jadual penuh, perhatikan urutan indeks gabungan, jangan tambah indeks dalam medan terpilih yang rendah, dan elakkan indeks berlebihan. 2. Mengoptimumkan pertanyaan SQL: Elakkan pilih*, jangan gunakan fungsi di mana, mengurangkan bersarang subquery, dan mengoptimumkan kaedah pertanyaan paging. 3. Reka Bentuk dan Pembahagian Struktur Jadual: Pilih paradigma atau anti-paradigma mengikut senario membaca dan menulis, pilih jenis medan yang sesuai, data bersih secara teratur, dan pertimbangkan jadual mendatar untuk membahagikan jadual atau partition mengikut masa. 4. Menggunakan cache dan pemantauan: Gunakan cache redis untuk mengurangkan tekanan pangkalan data dan membolehkan pertanyaan perlahan

CTE adalah hasil sementara yang ditetapkan dalam MySQL yang digunakan untuk memudahkan pertanyaan kompleks. Ia boleh dirujuk beberapa kali dalam pertanyaan semasa, meningkatkan kebolehbacaan dan penyelenggaraan kod. Sebagai contoh, apabila mencari pesanan terkini untuk setiap pengguna dalam jadual pesanan, anda boleh terlebih dahulu mendapatkan tarikh pesanan terkini untuk setiap pengguna melalui CTE, dan kemudian mengaitkannya dengan jadual asal untuk mendapatkan rekod lengkap. Berbanding dengan subqueries, struktur CTE lebih jelas dan logik lebih mudah untuk debug. Petua penggunaan termasuk alias eksplisit, menggabungkan pelbagai CTE, dan memproses data pokok dengan CTE rekursif. Menguasai CTE boleh menjadikan SQL lebih elegan dan cekap.

1. 2. Prestasi tinggi memerlukan pergantungan pada cache (redis), pengoptimuman pangkalan data, CDN dan giliran tak segerak; 3. Keselamatan mesti dilakukan dengan penapisan input, perlindungan CSRF, HTTPS, penyulitan kata laluan dan kawalan kebenaran; 4. Pengiklanan pilihan wang, langganan ahli, ganjaran, komisen, pembayaran pengetahuan dan model lain, terasnya adalah untuk memadankan nada komuniti dan keperluan pengguna.

Whensettingupmysqltables, memilihTheRightDatypesiscialforfiencyandscalability.1) pemahamanThedataeachcolumnwillstore-umbers, text, date, orflags-andchooseaccordingly.2)

Jadual sementara adalah jadual dengan skop terhad, dan jadual memori adalah jadual dengan kaedah penyimpanan yang berbeza. Jadual sementara dapat dilihat dalam sesi semasa dan secara automatik dipadamkan selepas sambungan diputuskan. Pelbagai enjin penyimpanan boleh digunakan, yang sesuai untuk menjimatkan hasil pertengahan dan mengelakkan pengiraan berulang; 1. Jadual sementara menyokong pengindeksan, dan beberapa sesi boleh membuat jadual dengan nama yang sama tanpa menjejaskan satu sama lain; 2. Jadual memori menggunakan enjin memori, dan data disimpan dalam ingatan, dan permulaannya hilang, yang sesuai untuk set data kecil cache dengan akses frekuensi tinggi; 3. Jadual memori menyokong pengindeksan hash, dan tidak menyokong jenis gumpalan dan teks, jadi anda perlu memberi perhatian kepada penggunaan memori; 4. Kitaran hayat jadual sementara adalah terhad kepada sesi semasa, dan jadual memori dikongsi oleh semua sambungan. Apabila memilih, ia harus diputuskan berdasarkan sama ada data itu adalah peribadi, sama ada akses berkelajuan tinggi diperlukan dan sama ada ia boleh mentolerir kerugian.

Langkah-langkah untuk menetapkan replikasi semi mysql adalah seperti berikut: 1. Sahkan versi menyokong dan memuatkan pemalam; 2. Hidupkan dan aktifkan mod separa sinkron; 3. Periksa status status dan operasi; 4. Perhatikan tetapan masa tamat, konfigurasi perpustakaan multi-hamba dan pemprosesan suis master-hamba. Adalah perlu untuk memastikan bahawa versi mysql 5.5 dan ke atas dipasang, rpl_semi_sync_master

Untuk mencapai automasi penempatan MySQL, kunci adalah menggunakan Terraform untuk menentukan sumber, konfigurasi pengurusan ansible, Git untuk kawalan versi, dan mengukuhkan pengurusan keselamatan dan kebenaran. 1. Gunakan Terraform untuk menentukan contoh MySQL, seperti versi, jenis, kawalan akses dan atribut sumber lain AWSRDS; 2. Gunakan AnsiblePlayBook untuk merealisasikan konfigurasi terperinci seperti penciptaan pengguna pangkalan data, tetapan kebenaran, dan lain -lain; 3. Semua fail konfigurasi dimasukkan dalam pengurusan Git, pengesanan perubahan sokongan dan pembangunan kolaboratif; 4. Elakkan maklumat sensitif keras, gunakan Vault atau Ansiblevault untuk menguruskan kata laluan, dan tetapkan kawalan akses dan prinsip kebenaran minimum.

Kesalahan MySQL "IncorrectstringValueForColumn" biasanya kerana set aksara medan tidak menyokong aksara empat-bait seperti emoji. 1. Sebab kesilapan: Set aksara UTF8 MySQL hanya menyokong aksara tiga-bait dan tidak dapat menyimpan emoji empat-bait; 2. Penyelesaian: Tukar pangkalan data, jadual, medan dan sambungan ke set aksara UTF8MB4; 3. Juga periksa sama ada fail konfigurasi, jadual sementara, pengekodan lapisan aplikasi dan pemandu pelanggan semua menyokong UTF8MB4; 4. Penyelesaian Alternatif: Jika anda tidak perlu menyokong aksara empat-bait, anda boleh menapis aksara khas seperti emoji pada lapisan aplikasi.
