当前位置: 首页 > news >正文

58同城上海网站建设北京朝阳区房价

58同城上海网站建设,北京朝阳区房价,网站代运营推广,做摄影网站的目的是什么意思一、索引概述 索引本质是帮助MySQL高效获取数据的排序数据结构(类似书籍目录),通过减少磁盘I/O次数提升查询效率。其核心价值体现在大数据量场景下的快速定位能力,但同时带来存储和维护成本。 核心特点: 优点&#…
一、索引概述

索引本质是帮助MySQL高效获取数据的排序数据结构(类似书籍目录),通过减少磁盘I/O次数提升查询效率。其核心价值体现在大数据量场景下的快速定位能力,但同时带来存储和维护成本。

核心特点

  • 优点
    • 减少数据检索量(时间复杂度从O(n)降至O(log n))
    • 加速排序和分组操作(ORDER BY/GROUP BY)
    • 保证数据唯一性(唯一索引)
  • 缺点
    • 占用额外磁盘空间(索引文件独立存储)
    • 降低写操作性能(INSERT/UPDATE/DELETE需维护索引树)
    • 不恰当的索引设计可能引发性能劣化
二、索引结构
1. B+Tree(主流结构)
  • 层级结构:非叶子节点仅存索引键(Key),叶子节点存储数据指针且形成双向链表 。
  • 优势
    • 树高可控(一般3-4层支撑千万级数据)
    • 范围查询高效(叶子节点链表直接遍历)
    • 适合磁盘存储(节点大小=磁盘页大小,减少I/O)
2. Hash索引
  • 基于哈希表实现,O(1)时间复杂度的等值查询 。
  • 局限性
    • 不支持范围查询和排序
    • 哈希冲突影响性能(链表或红黑树处理)
    • 仅Memory引擎原生支持,InnoDB提供自适应哈希(AHI)
3. 全文索引(Full-Text)
  • 基于倒排索引实现,针对TEXT类型字段进行关键词搜索 。
  • 支持自然语言查询(MATCH...AGAINST语法)
  • 仅InnoDB/MyISAM引擎支持
三、索引分类
按数据结构划分
类型特点适用场景
B+Tree支持范围查询、排序,磁盘友好90%以上的索引场景
Hash等值查询极快,不支持范围操作内存表、精确匹配场景
Fulltext文本关键词搜索文章内容检索
按物理存储划分
类型特点示例
聚集索引数据行存储在叶子节点(InnoDB主键索引)PRIMARY KEY
非聚集索引叶子节点存储主键值或数据地址,需二次查找普通单列/组合索引
按字段特性划分
类型特点语法示例
主键索引唯一且非空,InnoDB的表数据按主键顺序存储PRIMARY KEY (id)
唯一索引列值唯一,允许NULLUNIQUE INDEX (email)
普通索引无唯一性约束,加速查询INDEX (name)
全文索引文本内容分词检索FULLTEXT (content)
按字段数量划分
类型特点优化规则
单列索引单字段索引INDEX (age)
联合索引多字段组合索引,遵循最左前缀原则INDEX (name,age)

特殊类型

  • 覆盖索引:索引包含查询所需全部字段,避免回表 
     (如SELECT id,name FROM users WHERE name='A',若索引是(name,id)
  • 前缀索引:对长字符串前N字符创建索引,节省空间 
    (如INDEX (title(10))
四、索引语法
1. 通用操作
-- 创建索引 
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON table_name (col1 [ASC|DESC], ...); 
-- 修改表添加索引 
ALTER TABLE table_name ADD [UNIQUE|FULLTEXT] INDEX index_name (col1, ...); 
-- 删除索引 
DROP INDEX index_name ON table_name;
2. 分类示例

主键索引

-- 建表时指定 
CREATE TABLE users (
id INT AUTO_INCREMENT, 
name VARCHAR(50), 
PRIMARY KEY (id) -- 聚集索引 ); 
-- 修改添加 
ALTER TABLE orders ADD PRIMARY KEY (
order_id);

联合索引

-- 优化多条件查询 
CREATE INDEX idx_name_age ON employees (
last_name, hire_date);

全文索引

-- 支持文本搜索 
CREATE FULLTEXT INDEX ft_content ON articles (content); 
SELECT * FROM articles WHERE MATCH(content) AGAINST('数据库');

前缀索引

-- 长字段优化 
CREATE INDEX idx_city_prefix ON customers (city(10));
五、设计原则
  1. 高频查询字段优先(WHERE/JOIN/ORDER BY)
  2. 区分度高字段前置(如性别字段不宜单独建索引)
  3. 避免过度索引(超过5个索引需谨慎评估)
  4. 联合索引左前缀匹配INDEX(a,b,c)适用a=1 AND b>2,不适用b>2
  5. 长文本使用前缀/全文索引
http://www.dtcms.com/a/585363.html

相关文章:

  • 金融网络销售怎么找客源公司网站做优化少钱
  • 代码随想录 Q84.分发饼干
  • 11.8 脚本网页 打砖块max
  • 终极笔记应用程序Alexandrie
  • 「嵌」入未来,「式」界无限 · 第5篇:能源电力的智能化跃迁
  • 自动化实践(7.25):把 PsTools 接入 PowerShell / 批处理 / Ansible
  • 太原在线网站建设深圳网站关键词优化
  • AWS Lambda的安全之道:S3静态加密与运行时完整性检查的双重保障
  • 时序数据库选型指南从大数据视角看IoTDB的核心优势
  • 长沙网站建站模板创免费网站
  • dede 门户网站长春建站网站建设
  • Android Hilt 入门教程_传统写法和Hilt写法的比较
  • 【开题答辩全过程】以 个性化宿舍分配管理系统为例,包含答辩的问题和答案
  • wordpress站点制作武威网站制作公司哪个好
  • 【ZeroRange WebRTC】WebRTC 媒体安全:实现原理与应用(深入指南)
  • python3GUI--短视频社交软件 By:Django+PyQt5(前后端分离项目)
  • Rust 练习册 :Raindrops与FizzBuzz变体
  • Home Assistant Z-Pi 800全新硬件打造远距离智能家居体验
  • 易货电商新模式:小本钱撬动大市场,破解实体店“三大愁”
  • 做网站需要多少人网站建设价格很 好乐云seo
  • Java 大视界 -- 基于 Java 的大数据可视化在城市空气质量监测与污染溯源中的应用
  • 《玩转Docker》[应用篇16]:Docker安装部署HomeBox-家庭库存管理
  • 网站用什么布局wordpress怎么使用七牛云储存
  • Cursor接入Figma并使用的图文教程
  • Java基础——集合进阶4
  • CUDA C++编程指南(3.2.7)——内存同步域
  • 超市进销存源码
  • 100G相机接口
  • Linux第一个小程序 之 【进度条】
  • 网站建设的目的及功能定位网站建设落地页