Catatan kuliah pertama dengan HighLoad disambut positif, jadi saya melanjutkan.
Dia memilih materi yang menarik sebagai kuliah kedua, yang menemukan respons di sinopsis dan di aula. Menurut pendapat saya, laporan ini mungkin menarik bagi semua orang, terutama spesialis pemula.
Laporan tersebut membahas masalah-masalah berikut:
- Kita ingin menjadi apa sebenarnya?
- Apakah kita membutuhkannya?
- Keterampilan teoretis
- Keterampilan praktis (teknis)
- Keterampilan praktis (non-teknis)

Database adalah hal yang sederhana, dan orang-orangnya rumit, jadi saran mungkin tidak cocok untuk semua orang.
Dia tidak mengikuti semua tips.
Peta keterampilan hari ini (besok dapat berubah):

Peran apa pun bermanfaat untuk memiliki keterampilan dari daerah tetangga.
Awan telah ditambahkan baru-baru ini. Mereka menambahkan bidang tanggung jawab untuk penganggaran.
Apakah kita membutuhkannya?
- Itu pasti tidak akan membosankan. DB menarik.
- Selama ada data, akan ada basis. Mereka mungkin menjadi berbeda, tetapi mereka pasti akan berbeda.
- DBA - seperti tukang ledeng, tetapi hangat dan di belakang keyboard.
Hampir tidak mungkin mendapatkan pendidikan profil yang baik. Tidak ada pendidikan seperti itu. Tetapi ada universitas yang mengajarkan ini dengan baik. Tetapi meninggalkan universitas Anda tidak akan menjadi spesialis.
Anda harus dapat dengan cepat mempelajari berbagai profesi.
Tugas yang harus diselesaikan dengan cepat (ujian di dunia ideal tentang dba):
- Perbaiki basis untuk saat ini (terlihat untuk pertama kalinya). Apa masalahnya tidak jelas, tetapi semuanya "melambat"
- Penguji 10, dan lebih disukai 20-30
- 3 tanyakan di slack "bagaimana"
- Tiga lagi melalui telepon
- 1 mengharuskan untuk memesan waktu
- 3 perkenalkan scrum sekarang :) (momen humor)
Pengetahuan dasar yang dibutuhkan (teori):
- Aljabar Relasional (minimal, tidak lebih dari 40 jam untuk belajar)
- B-tree dalam berbagai jenis dan bentuk (pengetahuan mendalam diperlukan hanya jika tugasnya adalah menulis database Anda sendiri)
Buku pengantar yang bagus:
Novikov, Dombrowski, menyiapkan aplikasi basis data .
Intinya : Sub adalah Kerangka yang memungkinkan Anda untuk bekerja dengan data:
- Secara universal
- Andal
- Secara produktif
(!) Bagaimana bisa - Anda perlu tahu secara menyeluruh.Keterampilan teknis praktis (!) (Penting dan perlu)
- Kontrol konkurensi
- Penguncian 2 fase
- Deteksi kebuntuan
- Kontrol konkurensi multi versi
- Pemulihan
- Tulis log di depan
- Ulangi
- Batalkan
- Transaksi terdistribusi
- 2 fase komit
- Pemulihan terdistribusi
Baca wikipedia minimum. Buku yang lebih baik - G. Weikum, G. Vossen, Sistem Informasi Tranactional: Teori, Algoritma, dan Praktek Pengendalian dan Pemulihan Concurencty.
Jika sulit, untuk pertama kalinya Anda tidak dapat membaca tentang objek dan struktur pencarian. Kemudian baca kembali.
Perangkap
- Jangan bingung 2pl dan 2pc (pemblokiran dua fase dan komit dua fase).
- Jangan kontras 2pl dan mvcc.
- Ini adalah algoritma penjadwalan transaksi pesimistis - mereka adalah yang paling umum, tetapi dunia tidak terbatas pada mereka.
Menyapih membaca buku dan membaca dokumentasi. Buku praktik yang baik hanya sedikit, langka, dan pendek.
Bagaimana cara membaca dokumentasinya?
Jika Anda membaca dokumentasi untuk setiap parameter konfigurasi setidaknya satu kali (misalnya, postgresql.conf, dll.), Anda akan menjadi jauh lebih keren. Ini berlaku untuk semua basis data.
Rekomendasi adalah untuk mendapatkan sendiri server uji dan coba percobaan bagaimana berbagai parameter memengaruhinya.
Bagaimana mengatasi masalah
- Tetap tenang ( tetap tenang! )
- Mencari alasan: jangan sesuaikan kueri / ketahui data Anda! - Kami berpikir tentang bagaimana permintaan diatur, tetapi jangan mencoba menyelesaikannya "dahi"
- Pelajari alat diagnostik ( di muka ) (atas, iostat, perf, dll.)
- Tulis post mortem!
Keterampilan non-teknis praktis:
- Belajar berbicara, menulis, dan membaca bahasa Rusia dan Inggris
- Buat presentasi, ajar kolega, bicara di rapat, teruskan Highload!
- Belajar berkomunikasi dengan pengembang (dan tidak hanya dengan mereka)
Belajarlah untuk melakukan semua ini pada saat yang bersamaan.