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

怎么做外贸网站需注意哪些今天刚刚发生的重大新闻

怎么做外贸网站需注意哪些,今天刚刚发生的重大新闻,怎么做优惠券的网站,wordpress文章浏览次数统计代码Mysql知识梳理 索引索引分类索引未命中的原因性能调优命令Explain回表 mysql性能优化事务四大特性事务隔离级别设置事务隔离级别 存储引擎聚簇索引和非聚簇索引聚簇索引非聚簇索引 最左前缀结合原则全文索引 索引 索引分类 mysql有普通索引、空间索引、主键索引、唯一索引、组…

Mysql知识梳理

  • 索引
    • 索引分类
    • 索引未命中的原因
    • 性能调优命令Explain
    • 回表
  • mysql性能优化
  • 事务
    • 四大特性
    • 事务隔离级别
    • 设置事务隔离级别
  • 存储引擎
  • 聚簇索引和非聚簇索引
    • 聚簇索引
    • 非聚簇索引
  • 最左前缀结合原则
  • 全文索引

索引

索引分类

mysql有普通索引、空间索引、主键索引、唯一索引、组合索引和全文索引。

  • 普通索引:使用字段关键字建立的索引,主要目的是提高查询速度。
  • 空间索引:前只有MyISAM引擎支持,用于空间类型的字段,不允许为空。
  • 唯一索引:索引列中的值必须是唯一的,但允许为空值。
  • 主键索引:是一种特殊的唯一索引,不允许有空值
  • 组合索引:在表中的多个字段组合上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,遵循最左前缀集合原则。
  • 全文索引:一种特殊类型的索引,主要用于全文搜索。

索引未命中的原因

  1. 没有查询条件,或查询条件中没有索引
  2. 条件中有or,并且不是所有的条件都有索引
  3. like左匹配或者int字段
  4. 索引列是字符串,但是sql中未加引号
  5. 条件中在索引列使用函数
  6. 采用not in/not exist查询
  7. B-tree索引 is null不走索引,is not null才走索引
  8. 联合索引不满足最左原则

性能调优命令Explain

explain用于解析sql的执行计划,执行计划是MySQL为了执行查询语句而制定的优化方案,包括数据的读取顺序、表的访问方式、索引的使用情况等信息。
以下是使用EXPLAIN指令的基本语法:

EXPLAIN SELECT column1, column2 FROM table_name WHERE condition;

使用EXPLAIN指令后,MySQL会返回一个表格,其中包含以下信息:

  • id:查询的标识符,id越大的越先执行。
  • select_type:查询的类型,如SIMPLE、PRIMARY、SUBQUERY等。
  • table:被查询的表名。
  • partitions:被查询的分区信息。
  • type:访问表的方式,如ALL、INDEX、RANGE等。
    – ALL: 全表扫描;
    – INDEX: 索引全扫描。
    – range: 范围扫描。
    – ref: 使用非唯一索引,或唯一索引的前缀扫描,返回匹配某个单独值得记录行。
    – eq_ref: 多表连接中使用,主键或唯一建作为关联条件。
    – const/system: 单表中最多有一个匹配行。主要用于比较primary key 或unique索引,因为数据都是唯一的,所以性能最优。
    – null: 不用访问表或索引,直接就能得到结果。
  • possible_keys:可能使用的索引。
  • key:实际使用的索引。
  • key_len:使用的索引长度。
  • ref:用于比较的值。
  • rows:MySQL估计需要读取的行数,数值越大越不好,说明没用好索引。
  • filtered:MySQL估计返回的行数占总行数的比例。
  • Extra:附加信息,如使用了临时表、文件排序等。

回表

回表指当查询条件(where条件和返回列)不能被索引索引锁覆盖时,需要访问索引中没有的数据,需要通过回表技术访问数据所在页,获取具体得数据。
与回表相对应的是覆盖查询,即查询条件能够被索引所覆盖,不需要回表查询数据,这样查询效率会更高。因此,在设计数据库时,需要根据具体的情况选择合适的索引策略,以提高查询性能。

mysql性能优化

  1. 优化sql
    1.1 使用explain命令解析sql执行计划
    1.2 尽量命中索引
    1.3 合理设计索引,不是越多越好
  2. 优化表结构
    2.1 经常查询的表尽量避免过大。
    2.2 多余常用的字段尽量冗余,避免大表进行联合查询。
  3. 分库分表进行表瘦身
    3.1 水平分库:以字段为依据,将一个库中的数据进行拆分到多个库中。比如按年份进行分库。
    3.2 水平分表:以字段为依据,将一个表中的数据进行才分到多张表中。
    3.3 垂直分库:以表为依据,按业务将表分到不同的库中。
    3.4 垂直分表:以字段为依据,按字段中的活跃度将表中的字段拆分到不同的表,比如主表和扩展表。

事务

四大特性

事务的四大特性ACID,ACID是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)的缩写,是数据库事务的基本属性,用于确保事务的可靠性和一致性。

  • 原子性:事务是一个原子操作单元,事务的执行要么全部成功,要么全部失败回滚。
  • 一致性:事务必须保证数据库从一个状态改变为另一个状态,并保持数据的一致性和完整性。
  • 隔离性:多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
  • 持久性:一旦事务提交,对数据库的修改是永久的,即使系统崩溃或故障也能保持。

事务隔离级别

MySQL数据库的事务隔离级别有四个,分别是:读未提交(Read Uncommitted)、读提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。

  • 读未提交:事务中的修改,即使未提交,对其他事务也是可见的。
  • 读提交:事务只能看见已经提交的数据修改。
  • 可重复读:同一事务中多次读取数据的结果是一致的,但是并发的事务可能会对数据产生影响,导致 不可重复读和幻读。
  • 串行化:最严格的事务隔离级别,通过锁机制实现,确保事务串行化顺序执行,能避免不可重复读和幻读,但是效率低下。

mysql默认的事务隔离级别是可重复读

设置事务隔离级别

在MySQL中,可以使用以下SQL语句设置事务的隔离级别:

SET TRANSACTION ISOLATION LEVEL <isolation_level>;

存储引擎

mysql主要的存储引擎是MyISAM和InnoDB,默认使用的是InnoDB引擎。
使用以下命令查询当前使用的存储引擎:

SHOW VARIABLES LIKE 'storage_engine';

使用以下命令查询所有存储引擎:

SHOW ENGINES;
  • MyISAM:不支持事务、不支持外键,索引采用的是非聚簇索引。
  • InnoDB:提供了具有提交、回滚等事务功能,支持自动增长列,外键等功能。采用聚簇索引,索引和数据是存储在同一个文件下。

聚簇索引和非聚簇索引

聚簇索引

  1. 数据挂载在主索引的叶子节点上。
  2. 辅助索引的叶子节点指向主索引。

非聚簇索引

主索引和辅助索引的叶子节点指向数据存储的位置。

最左前缀结合原则

最左前缀原则就是使用联合索引时,查询条件需要遵循索引中列的顺序,从左到右进行匹配。
在创建多列索引时,要根据业务需求,where子句中使用最频繁的一列放在最左边。当创建(a,b,c)复合索引时,想要索引生效的话,只能使用a、ab、ac和abc四种组合。

select a,b,c from table where a = 'v' ; #索引生效,使用索引a
select a,b,c from table where a = 'v' and b='v1'; #索引生效,使用索引ab
select a,b,c from table where a = 'v' and c='v3'; #索引生效,使用索引a
select a,b,c from table where a = 'v' and b='v1' and c='v3'; #索引生效,使用索引abc

注意:实践证明,where后面的条件顺序并不会影响索引的命中条件,即 ba和ab效果一致。原因是mysql在执行前会对where语句进行自行调优。

全文索引

MySQL的全文索引是一种用于搜索文本内容的索引方式,它可以通过分析文本内容中的关键词,帮助提高检索效率。
MySQL使用全文索引主要分为以下步骤:

创建全文索引:

ALTER TABLE table_name ADD FULLTEXT(column_name);

创建全文索引的查询:

SELECT * FROM table_name WHERE MATCH(column_name) AGAINST('keywords');

在查询语句中,column_name是要查询的列名,keywords是要搜索的关键词。

需要注意的是,只有MyISAM和InnoDB存储引擎支持全文索引,其中MyISAM引擎默认全文索引,InnoDB引擎需要手动创建全文索引。全文索引的查询还需要考虑相关性和阈值,即匹配结果太少可能会查不到结果。

http://www.khdw.cn/news/11851.html

相关文章:

  • 网站的建设与颜色搭配seo全网推广
  • 毛织厂家东莞网站建设企业推广宣传文案
  • 目前做网站框架seo合作
  • 四平网站建设有哪些湖北疫情最新消息
  • 西安做北郊做网站成都百度推广开户公司
  • 营销策划公司企业文化2022最好的百度seo
  • 做网站厂家轻松seo优化排名
  • 网站系统建设与管理百度收录批量提交入口
  • 的网站建设软文广告
  • 用dw做网站的代码百度搜索广告价格
  • 网站建设怎么样工作室北京搜索引擎优化管理专员
  • 有没有好的网站可以学做头发旅行网站排名前十名
  • 深圳设计周展会2023时间seo网站关键词排名优化公司
  • 如何将自己做的网站推广出去互联网广告投放公司
  • 百度小程序登录入口seo前线
  • 微信开发网站建设人力资源管理师
  • 保险网站最近一周新闻大事
  • 泰州企业网站建设公司上海优化价格
  • 怎样做自己的小说网站网站seo推广员招聘
  • 网站建设图片网络营销是做什么的
  • 做视频导航网站有哪些品牌营销策划公司哪家好
  • 番禺网站建设培训论述搜索引擎优化的具体措施
  • webapp开发教程广州网站优化公司排名
  • 宜兴建设局 审图中心 网站开网站需要多少钱
  • 商城网站需求西安网站seo哪家公司好
  • 艾奇视觉网站建设今日热点新闻头条
  • 重庆便宜网站建设百度seo正规优化
  • 枣庄建设工程管理局网站兰州seo快速优化报价
  • 网站建设 网站制作app运营方案
  • 长沙做网站的公司有哪些网络代理app