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

如何进行一个网站建设网站开发赚不赚钱

如何进行一个网站建设,网站开发赚不赚钱,网站怎样查是哪家做的,深圳建筑工地招工平台一、存储引擎 1.1 核心架构 四层架构:连接层 → 服务层 → 引擎层 → 存储层插件式存储引擎:不同引擎独立管理数据存储,可动态选择 1.2 主流引擎对比 特性InnoDB(默认)MyISAMMemory事务支持✅ 支持❌ 不支持❌ 不支…

一、存储引擎

1.1 核心架构

  • 四层架构:连接层 → 服务层 → 引擎层 → 存储层
  • 插件式存储引擎:不同引擎独立管理数据存储,可动态选择

1.2 主流引擎对比

特性InnoDB(默认)MyISAMMemory
事务支持✅ 支持❌ 不支持❌ 不支持
锁粒度行锁表锁表锁
外键支持✅ 支持❌ 不支持❌ 不支持
存储位置磁盘磁盘内存
适用场景高并发事务读多写少临时数据缓存

选择建议

  • 优先选 InnoDB(支持事务和外键)
  • 读多写少且无需事务选 MyISAM
  • 临时数据用 Memory

二、索引优化

2.1 索引原理

  • B + 树结构
    • 叶子节点存储完整数据(聚集索引)
    • 非叶子节点仅存储索引值和指针
  • Hash 索引
    • 快速等值查询(WHERE name='xxx'
    • 不支持范围查询(BETWEEN...

2.2 索引类型

类型说明示例
主键索引唯一标识记录(自动创建)PRIMARY KEY (id)
唯一索引保证值唯一UNIQUE KEY (email)
组合索引多字段联合索引INDEX idx_name_age (name, age)
全文索引文本关键词搜索FULLTEXT INDEX (content)
索引类型唯一性字段类型适用场景
主键索引强制唯一整数、UUID 等表的唯一标识
唯一索引唯一邮箱、手机号等确保字段值不重复
常规索引非唯一常用查询字段加速WHEREORDER BY
全文索引非唯一文本类型关键词搜索(如文章内容)

为什么需要不同索引?

  • 主键索引:确保数据唯一性,加速数据定位。
  • 唯一索引:约束业务规则(如邮箱不能重复)。
  • 常规索引:提升查询效率,减少全表扫描。
  • 全文索引:支持复杂文本搜索(如LIKE '%关键词%'的优化)

2.3 索引优化策略

  1. 最左前缀原则:组合索引需按顺序使用最左字段

    -- 有效
    SELECT * FROM users WHERE name='Tom' AND age=20;
    -- 无效(跳过age)
    SELECT * FROM users WHERE name='Tom' AND gender='M';
    
  2. 避免索引失效

    • 不要在索引列上做运算(WHERE age+1=20
    • 字符串不加引号(WHERE phone=13812345678
    • 模糊查询前导 %(WHERE name LIKE '%Tom'
  3. 覆盖索引:查询字段全部包含在索引中

    CREATE INDEX idx_user_info ON users(name, age, email);
    SELECT name, age FROM users WHERE email='tom@example.com';
    

三、SQL 性能优化

3.1 执行计划分析

使用EXPLAIN分析查询性能:

EXPLAIN SELECT * FROM orders WHERE status=1;

关键指标解读:

  • type: 连接类型(ref优于range优于all
  • key: 实际使用的索引
  • rows: 预估扫描行数
  • ExtraUsing index表示覆盖索引

3.2 分页优化

问题LIMIT 100000,10性能差
优化

-- 基于覆盖索引
SELECT * FROM orders 
WHERE id > (SELECT id FROM orders LIMIT 100000,1)
LIMIT 10;

3.3 锁优化

  • 行锁:InnoDB 默认使用行锁(基于索引)
  • 表锁:MyISAM 使用表锁,适合低并发场景
  • 意向锁:InnoDB 通过意向锁减少锁冲突

四、事务与隔离级别

4.1 事务特性(ACID)

  • 原子性:通过undo log实现回滚
  • 一致性:事务前后数据状态一致
  • 隔离性:通过锁和 MVCC 实现
  • 持久性:通过redo log保证数据持久化

4.2 隔离级别对比

隔离级别脏读不可重复读幻读实现方式
Read Uncommitted无锁
Read Committed行锁
Repeatable ReadMVCC + 行锁
Serializable全表锁

推荐:默认使用Repeatable Read,兼顾一致性和性能

五、高级功能

5.1 视图

作用:简化复杂查询,提高安全性

CREATE VIEW v_user_info AS
SELECT id, name, email FROM users WHERE status=1;

5.2 存储过程

示例:计算员工平均薪资

DELIMITER $$
CREATE PROCEDURE GetAvgSalary()
BEGINSELECT AVG(salary) AS avg_salary FROM employees;
END$$
DELIMITER ;

5.3 触发器

示例:记录用户操作日志

CREATE TRIGGER log_user_operation
AFTER UPDATE ON users
FOR EACH ROW
INSERT INTO user_logs(user_id, operation, timestamp)
VALUES(OLD.id, 'update', NOW());

六、InnoDB 引擎深度解析

6.1 核心组件

  • Buffer Pool:缓存数据页和索引页
  • Change Buffer:优化非唯一索引的写操作
  • Redo Log:保证事务持久性
  • Undo Log:支持回滚和 MVCC

6.2 MVCC 原理

  • 版本链:通过DB_TRX_IDDB_ROLL_PTR实现多版本控制
  • ReadView:记录活跃事务 ID,决定可见性规则

七、管理工具

7.1 备份恢复

全库备份

mysqldump -uroot -p --all-databases > full_backup.sql

恢复数据

mysql -uroot -p < full_backup.sql

7.2 性能监控

-- 查看慢查询日志
SHOW VARIABLES LIKE 'slow_query_log';-- 查看索引使用情况
SELECT index_name, rows_read, rows_index_first 
FROM information_schema.table_statistics 
WHERE table_schema='your_db';

http://www.dtcms.com/a/479455.html

相关文章:

  • 【c++】:Lambda 表达式介绍和使用
  • 四川建设厅网站施工员证查询网站建设找盛誉网络
  • 了解网站开发 后台流程详情页尺寸
  • 2025年10月13日
  • 使用Reindex迁移Elasticsearch集群数据详解(上)
  • 网站设计 优帮云北京做网站公司电话
  • 上海高端网站制作公司专业网站设计建设服务
  • 大模型-CLIP 双编码器架构如何优化图文关联
  • [Qlib] `Model` | `fit` `predict`
  • 线程池Executors
  • 莆田企业网站建设网站建设的会计核算
  • Redis集群架构详解:如何实现高可用和高性能
  • 凤岗网站建设电商系统架构图
  • 知乎 上海做网站的公司自己做一个网站需要多少钱
  • 广州网站开发怎么做如何利用网站来提升企业形象
  • ESD防护设计宝典(八):能量的阀门——电源分配网络(PDN)设计
  • 怎么建设网站规划网站开场动画怎么做
  • 帝国cms怎么做网站地图竞价推广代运营公司
  • C语言--VSCode开发环境配置
  • 企业网站建设智恒网络山东网站营销seo哪家好
  • 12380网站建设打算手机网站建设liedns
  • 为什么做营销型网站网站的经营推广
  • 公章在线制作网站沈阳建设工程质量安全
  • vtkImageThreshold 图像阈值处理指南:从基础到实战优化
  • 佳木斯网站建设公司企业产品展示网站源码
  • MySQL8数据库高级特性
  • 遵义网站建设gzyhg设计一个网站多少钱
  • 设置自己的网站php+mysql网站开发...
  • C++ Builder XE在RzListView1中使用 Selected 属性获取行号,双击显示选中某行的行号
  • 广告制作公司的营业成本沧州网站建设优化案例