Golang | Вопросы собесов
4.54K subscribers
28 photos
1 video
802 links
Download Telegram
🤔 Для чего используются составные индексы?

1. Оптимизация сложных WHERE условий – ускоряют фильтрацию по нескольким полям.
2. Ускорение сортировки (ORDER BY) – если порядок столбцов в индексе совпадает с сортировкой, MySQL использует индекс.
3. Оптимизация соединений (JOIN) – индексы помогают MySQL быстрее находить соединяемые записи.
4. Снижение нагрузки на БД – индексы уменьшают количество операций чтения с диска.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 Что такое iota?

Это предопределенное идентификатор, используемое для создания последовательностей целочисленных констант. Он применяется в контексте объявления констант и автоматически инкрементируется на единицу с каждым новым значением. Обычно используется для определения множества связанных констант без необходимости вручную назначать каждому элементу значение.

🚩Основные характеристики

🟠Инициализация с нуля
Начинает счет с 0 в каждой новой группе констант.
🟠Автоматическое увеличение
Каждое последующее использование iota в одной группе констант увеличивает его значение на 1.
🟠Повторное использование
При каждом новом объявлении константного блока iota сбрасывается до 0.

package main

import "fmt"

const (
A = iota // 0
B // 1
C // 2
)

func main() {
fmt.Println(A) // Вывод: 0
fmt.Println(B) // Вывод: 1
fmt.Println(C) // Вывод: 2
}


Использование его для создания битовых флагов
package main

import "fmt"

const (
Flag1 = 1 << iota // 1 << 0 = 1
Flag2 // 1 << 1 = 2
Flag3 // 1 << 2 = 4
Flag4 // 1 << 3 = 8
)

func main() {
fmt.Println(Flag1) // Вывод: 1
fmt.Println(Flag2) // Вывод: 2
fmt.Println(Flag3) // Вывод: 4
fmt.Println(Flag4) // Вывод: 8
}


Сброс его в новом блоке
package main

import "fmt"

const (
X = iota // 0
Y // 1
)

const (
Z = iota // 0 (новый блок констант, iota сбрасывается)
W // 1
)

func main() {
fmt.Println(X) // Вывод: 0
fmt.Println(Y) // Вывод: 1
fmt.Println(Z) // Вывод: 0
fmt.Println(W) // Вывод: 1
}


🚩Комплексное использование

Можно использовать в выражениях и совместно с другими константами для создания более сложных последовательностей.
package main

import "fmt"

const (
_ = iota // пропускаем 0
KB = 1 << (10 * iota) // 1 << 10 = 1024
MB // 1 << 20 = 1048576
GB // 1 << 30 = 1073741824
)

func main() {
fmt.Println("KB:", KB) // Вывод: KB: 1024
fmt.Println("MB:", MB) // Вывод: MB: 1048576
fmt.Println("GB:", GB) // Вывод: GB: 1073741824
}


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3