Rumah > Soal Jawab > teks badan
Dalam jadual data, jika panjang setiap lajur data adalah tetap, maka panjang setiap baris data juga akan tetap Selagi terdapat panjang berubah lajur data dalam jadual data, maka setiap data Panjang baris berubah. Jika panjang baris data dalam jadual data tertentu berubah, maka, untuk menjimatkan ruang storan, MySQL akan menukar lajur data panjang tetap dalam jadual data kepada jenis panjang Pembolehubah yang sepadan, lajur data char dengan panjang kurang daripada 4 aksara tidak akan ditukar kepada jenis varchar
Jika medan dalam jadual ialah varchar, adakah masih masuk akal untuk mencipta medan char dalam jadual ini?
伊谢尔伦2017-05-24 11:35:08
Pertama, anda perlu memahami perbezaan antara char dan varchar.
1. Panjang CHAR adalah tetap, tetapi panjang VARCHAR2 boleh diubah Contohnya, untuk menyimpan rentetan "abc", untuk CHAR (10), ini bermakna aksara yang anda simpan akan menduduki 10 bait (termasuk 7 aksara nol) . VARCHAR2 (10) yang sama hanya menempati panjang 3 bait, dan 10 hanyalah nilai maksimum Apabila aksara yang anda simpan kurang daripada 10, ia disimpan mengikut panjang sebenar.
2. CHAR lebih cekap sedikit daripada VARCHAR2.
3. Pada masa ini VARCHAR ialah sinonim untuk VARCHAR2. Jenis VARCHAR standard industri boleh menyimpan rentetan kosong, tetapi Oracle tidak berbuat demikian, walaupun ia berhak untuk berbuat demikian pada masa hadapan. Oracle telah membangunkan jenis data VARCHAR2 Jenis ini bukan VARCHAR standard Ia mengubah ciri yang lajur varchar dalam pangkalan data boleh menyimpan rentetan kosong untuk menyimpan nilai NULL. Jika anda mahukan keserasian ke belakang, Oracle mengesyorkan menggunakan VARCHAR2 dan bukannya VARCHAR.
Bilakah anda harus menggunakan CHAR dan bilakah anda harus menggunakan varchar2?
char dan varchar2 adalah perpaduan yang bercanggah, dan kedua -duanya adalah pelengkap apa yang sering kita panggil 'ruang perdagangan untuk kecekapan' dalam reka bentuk pangkalan data.
Walaupun VARCHAR2 menjimatkan ruang daripada CHAR, jika lajur VARCHAR2 kerap diubah suai dan panjang data yang diubah suai berbeza setiap kali, ini akan menyebabkan fenomena 'Migrasi Baris', yang akan menyebabkan I/O berlebihan Perkara ini harus dielakkan dalam reka bentuk pangkalan data dan pelarasan Dalam kes ini, adalah lebih baik untuk menggunakan CHAR daripada VARCHAR2.
Jawapan ini dipetik daripada jawapan Baidu https://zhidao.baidu.com/ques...
Saya rasa jawapannya sangat terperinci