网站建设知识点的总结郑州免费建站

diannao/2026/1/16 23:56:47/文章来源:
网站建设知识点的总结,郑州免费建站,怎么做网站的浏览栏,好看的扁平化网站索引 索引的概念 索引是一个排序的列表#xff0c;在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址#xff08;类似于C语言的链表通过指针指向数据记录的内存地址#xff09;。 使用索引后可以不用扫描全表来定位某行的数据#xff0c;而是先通过索引表找…索引 索引的概念 索引是一个排序的列表在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址类似于C语言的链表通过指针指向数据记录的内存地址。 使用索引后可以不用扫描全表来定位某行的数据而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据因此能加快数据库的查询速度。 索引就好比是一本书的目录可以根据目录中的页码快速找到所需的内容。 索引是表中一列或者若干列值排序的方法。 建立索引的目的是加快对表中记录的查找或排序。 索引的作用 设置了合适的索引之后数据库利用各种快速定位技术能够大大加快查询速度这是创建索引的最主要的原因。 当表很大或查询涉及到多个表时使用索引可以成千上万倍地提高查询速度。 可以降低数据库的IO成本并且索引还可以降低数据库的排序成本。 通过创建唯一性索引可以保证数据表中每一行数据的唯一性。 可以加快表与表之间的连接。 在使用分组和排序时可大大减少分组和排序的时间。 建立索引在搜索和恢复数据库中的数据时能显著提高性能 索引的副作用 索引需要占用额外的磁盘空间。 对于 MyISAM 引擎而言索引文件和数据文件是分离的索引文件用于保存数据记录的地址。 而 InnoDB 引擎的表数据文件本身就是索引文件。 更新一个包含索引的表需要比更新一个没有索引的表花费更多的时间这是由于索引本身也需要更新。因此理想的做法是仅仅在常常被搜索的列以及表上面创建索引。   创建索引的规则 索引虽可以提升数据库查询的速度但并不是任何情况下都适合创建索引。因为索引本身会消耗系统资源在有索引的情况下数据库会先进行索引查询然后定位到具体的数据行如果索引使用不当反而会增加数据库的负担。 表的主键、外键必须有索引。因为主键具有唯一性外键关联的是主表的主键查询时可以快速定位。 记录数超过300行的表应该有索引。如果没有索引每次查询都需要把表遍历一遍会严重影响数据库的性能。 经常与其他表进行连接的表在连接字段上应该建立索引。 唯一性太差的字段不适合建立索引。 更新太频繁地字段不适合创建索引。 经常出现在 where 子句中的字段特别是大表的字段应该建立索引。 在经常进行 GROUP BY、ORDER BY 的字段上建立索引 索引应该建在选择性高的字段上。 索引应该建在小字段上对于大的文本字段甚至超长字段不要建索引。   索引的分类 普通索引 普通索引最基本的索引类型没有唯一性之类的限制。 直接创建索引 直接创建索引 CREATE INDEX 索引名 ON 表名 (列名[(length)]); #(列名(length))length是可选项下同。如果忽略 length 的值则使用整个列的值作为索引。如果指定使用列的前 length 个字符来创建索引这样有利于减小索引文件的大小。在不损失精确性的情况下长度越短越好。 #索引名建议以“_index”结尾。 对上表的name创建普通索引create index name_index on member (name); 以修改表的方式创建索引 ALTER TABLE 表名 ADD INDEX 索引名 (列名); alter table test01 add index scoree_index(score); 创建表的时候指定索引 CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...],INDEX 索引名(列名)); create table test04 (id int(10),name varchar(10),cardid int(18),phonenum int(11),address varchar(50),index name_index(name)); 唯一索引 唯一索引与普通索引类似但区别是唯一索引列的每个值都唯一。唯一索引允许有空值注意唯一索引和主键不同。 如果是用组合索引创建则列值的组合必须唯一。添加唯一键将自动创建唯一索引。 直接创建唯一索引 CREATE UNIQUE INDEX 索引名 ON 表名(列名); create unique index cardid_index on test04(cardid); 修改表方式创建唯一索引 ALTER TABLE 表名 ADD UNIQUE 索引名 (列名); alter table test04 add unique phonenum_index(phonenum); 创建表的时候指定唯一索引 CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...],UNIQUE 索引名 (列名)); create table test05 (id int(10),name varchar(20),cardid int(18),phonenum int(11),address varchar(48),unique id_index(id)); 主键索引 主键索引是一种特殊的唯一索引必须指定为“PRIMARY KEY”。一个表只能有一个主键不允许有空值。 添加主键将自动创建主键索引。 创建表的时候指定索引 创建表的时候指定 CREATE TABLE 表名 ([...],PRIMARY KEY (列名)); create table test06 (id int(10),name varchar(20),cardid int(18),phonenum int(11),address varchar(48),primary key(id)); 修改表方式创建主键索引 ALTER TABLE 表名 ADD PRIMARY KEY (列名); 创建一张无任何主键指定的表  alter table test07 add primary key(id); 组合索引 组合索引可以是单列上创建的索引也可以是在多列上创建的索引。 组合索引需要满足最左原则因为 select 语句的 where 条件是依次从左往右执行的 所以在使用 select 语句查询时 where 条件使用的字段顺序必须和组合索引中的排序一致否则索引将不会生效。   直接创建组合索引 CREATE INDEX 组合索引名 表名(列名1,列名2,列名3); select 查询时 where 语句中的条件字段 要与组合索引的字段排列顺序一致最左原则 select * from 表名 where 列名1... AND 列名2... AND 列名3...; create index name_cardid_phonenum_index on test07(name,cardid,phonenum); 修改表方式创建组合索引  alter table 表名 add index 索引名 (字段1,字段2,字段3,...); alter table test06 add index name_cardid_index(name,cardid);  创建表的时候指定组合索引 CREATE TABLE 表名 (列名1 数据类型,列名2 数据类型,列名3 数据类型,INDEX 索引名 (列名1,列名2,列名3)); create table test08 (id int,name char(20),cardid char(18),address varchar(48),index name_cardid_address (name,cardid,address)); 全文索引FULLTEXT 适合在进行模糊查询的时候使用可用于在一篇文章中检索文本信息。在 MySQL5.6 版本以前FULLTEXT 索引仅可用于 MyISAM 引擎在 5.6 版本之后 innodb 引擎也支持 FULLTEXT 索引。全文索引可以在 CHAR、VARCHAR 或者 TEXT 类型的列上创建。 直接创建全文索引 CREATE FULLTEXT INDEX 索引名 ON 表名 (列名); create fulltext index address_index on test06(address); 修改表方式创建全文索引 ALTER TABLE 表名 ADD FULLTEXT 索引名(列名);alter table test0 add fulltext remark_index(address); 创建表的时候指定索引 CREATE TABLE 表名 (字段1 数据类型[,...],FULLTEXT 索引名 (列名)); #数据类型可以为 CHAR、VARCHAR 或者 TEXTcreate table test09 (id int,name char(10),cardid char(20),address varchar(48),fulltext address_index(address)); 使用全文索引查询 #插入表数据 insert into test09 values(1,aaa,123456,nanjing);insert into test09 values(2,bbb,456123,beijing);insert into test09 values(3,ccc,7777777,beijing);insert into test09 values(4,ddd,090909,shanghai);insert into test09 values(5,eee,67890123,nanjing);#使用全文查询 SELECT * FROM 表名 WHERE MATCH(列名) AGAINST(查询内容); select * from test09 where match(address) against(beijing); 查看索引 show index from 表名; show keys from 表名;各字段的含义如下 Table表的名称。 Non_unique如果索引不能包括重复词则为 0如果可以则为 1。 Key_name索引的名称。 Seq_in_index索引中的列序号从 1 开始。 Column_name列名称。 Collation列以什么方式存储在索引中。在 MySQL 中有值‘A’升序或 NULL无分类。 Cardinality索引中唯一值数目的估计值。 Sub_part如果列只是被部分地编入索引则为被编入索引的字符的数目。如果整列被编入索引则为 NULL。 Packed指示关键字如何被压缩。如果没有被压缩则为 NULL。 Null如果列含有 NULL则含有 YES。如果没有则该列含有 NO。 Index_type用过的索引方法BTREE, FULLTEXT, HASH, RTREE。 Comment备注删除索引 直接删除索引 DROP INDEX 索引名 ON 表名;drop index address_index on test09; 修改表方式删除索引  ALTER TABLE 表名 DROP INDEX 索引名;alter table test08 drop index name_cardid_address; 删除主键索引 ALTER TABLE 表名 DROP PRIMARY KEY; alter table test08 drop primary key; 事务 事务的概念 事务是一种机制、一个操作序列包含了一组数据库操作命令并且把所有的命令作为一个整体一起向系统提交或撤销操作请求即这一组数据库命令要么都执行要么都不执行。 事务是一个不可分割的工作逻辑单元在数据库系统上执行并发操作时事务是最小的控制单元。 事务适用于多用户同时操作的数据库系统的场景如银行、保险公司及证券交易系统等等。 事务通过事务的整体性以保证数据的一致性。 事务能够提高在向表中更新和插入信息期间的可靠性。 事务的ACID特点 ACID是指在可靠数据库管理系统DBMS中事务(transaction)应该具有的四个特性原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability。这是可靠数据库所应具备的几个特性。   原子性Atomicity 指事务是一个不可再分割的工作单位事务中的操作要么都发生要么都不发生。 事务是一个完整的操作事务的各元素是不可分的。 事务中的所有元素必须作为一个整体提交或回滚。 如果事务中的任何元素失败则整个事务将失败。 举例 当A给B转帐的时候执行了扣款语句并提交此时如果发生系统故障A账号已经发生了扣款但B账号却没收到加款此时就会引起纠纷。这种情况就需要事务的原子性来保证事务要么都执行要么就都不执行。 一致性Consistency 指在事务开始之前和事务结束以后数据库的完整性约束没有被破坏。 当事务完成时数据必须处于一致状态。 在事务开始前数据库中存储的数据处于一致状态。 在正在进行的事务中数据可能处于不一致的状态。 当事务成功完成时数据必须再次回到已知的一致状态。 举例 在转帐事务进行完成不管此事务成功还是失败应该保证事务结束后表中A和B的存款总额跟事务执行前一致。 隔离性Isolation 指在并发环境中当不同的事务同时操纵相同的数据时每个事务都有各自的完整数据空间。 对数据进行修改的所有并发事务是彼此隔离的表明事务必须是独立的它不应以任何方式依赖于或影响其他事务。 修改数据的事务可在另一个使用相同数据的事务开始之前访问这些数据或者在另一个使用相同数据的事务结束之后访问这些数据。 也就是说并发访问数据库时一个用户的事务不被其他事务所干扰各并发事务之间数据库是独立的。 当多个客户端并发地访问同一个表时可能出现下面的一致性问题 脏读 当一个事务正在访问数据并且对数据进行了修改而这种修改还没有提交到数据库中这时另外一个事务也访问这个数据然后使用了这个数据。 不可重复读 指在一个事务内多次读同一数据。在这个事务还没有结束时另外一个事务也访问该同一数据。那么在第一个事务中的两次读数据之间由于第二个事务的修改那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的因此称为是不可重复读。即不能读到相同的数据内容 幻读 一个事务对一个表中的数据进行了修改这种修改涉及到表中的全部数据行。同时另一个事务也修改这个表中的数据这种修改是向表中插入一行新数据。那么操作前一个事务的用户会发现表中还有一个没有修改的数据行就好象发生了幻觉一样。 丢失更新 两个事务同时读取同一条记录A先修改记录B也修改记录B不知道A修改过B提交数据后B的修改结果覆盖了A的修改结果。 事务的隔离级别决定了事务之间可见的级别。 MySQL事务支持如下四种隔离用以控制事务所做的修改并将修改通告至其它并发的事务 1、未提交读(Read UncommittedRU) 允许脏读即允许一个事务可以看到其他事务未提交的修改。  2、提交读(Read CommittedRC) 允许一个事务只能看到其他事务已经提交的修改未提交的修改是不可见的。防止脏读。  3、可重复读(Repeatable ReadRR)——mysql默认的隔离级别 确保如果在一个事务中执行两次相同的SELECT语句都能得到相同的结果不管其他事务是否提交这些修改。可以防止脏读和不可重复读。  4、串行读(Serializable)——相当于锁表 完全串行化的读将一个事务与其他事务完全地隔离。每次读都需要获得表级共享锁读写相互都会阻塞。可以防止脏读不可重复读取和幻读(事务串行化)会降低数据库的效率。    mysql默认的事务处理级别是 repeatable read 而Oracle和SQL Server是 read committed 。   事务隔离级别的作用范围分为两种 事务隔离级别的作用范围分为两种 ● 全局级对所有的会话有效 ● 会话级只对当前的会话有效查询全局事务隔离级别 show global variables like %isolation%; SELECT global.tx_isolation;查询会话事务隔离级别 show session variables like %isolation%; SELECT session.tx_isolation; SELECT tx_isolation;设置全局事务隔离级别 set global transaction isolation level read committed; set global.tx_isolationread-committed; #重启服务后失效设置会话事务隔离级别 set session transaction isolation level repeatable read; set session.tx_isolationrepeatable-read; 持久性Durability 在事务完成以后该事务所对数据库所作的更改持久的保存在数据库之中并不会被回滚。 指不管系统是否发生故障事务处理的结果都是永久的。 一旦事务被提交事务的效果会被永久地保留在数据库中。 总结在事务管理中原子性是基础隔离性是手段一致性是目的持久性是结果。   事务控制语句 BEGIN 或 START TRANSACTION显式地开启一个事务。 COMMIT 或 COMMIT WORK提交事务并使已对数据库进行的所有修改变为永久性的。 ROLLBACK 或 ROLLBACK WORK回滚会结束用户的事务并撤销正在进行的所有未提交的修改。 SAVEPOINT S1使用 SAVEPOINT 允许在事务中创建一个回滚点一个事务中可以有多个 SAVEPOINT“S1”代表回滚点名称。 ROLLBACK TO [SAVEPOINT] S1把事务回滚到标记点。 查看当前的隔离级别 show session variables like %isolation%; 修改隔离级别 set session transaction isolation level read committed; 使用 set 设置控制事务 SET AUTOCOMMIT0; #禁止自动提交 SET AUTOCOMMIT1; #开启自动提交Mysql默认为1 SHOW VARIABLES LIKE AUTOCOMMIT; #查看Mysql中的AUTOCOMMIT值如果没有开启自动提交当前会话连接的mysql的所有操作都会当成一个事务直到你输入rollback|commit;当前事务才算结束。当前事务结束前新的mysql连接时无法读取到任何当前会话的操作结果。 如果开起了自动提交mysql会把每个sql语句当成一个事务然后自动的commit。 当然无论开启与否begin; commit|rollback; 都是独立的事务。 查看事务的自动提交功能是否开启 show variables like autocommit; 存储引擎 MyISAM 表支持 3 种不同的存储格式 1、静态(固定长度)表 静态表是默认的存储格式。静态表中的字段都是非可变字段这样每个记录都是固定长度的这种存储方式的优点是存储非常迅速容易缓存出现故障容易恢复缺点是占用的空间通常比动态表多。 2、动态表 动态表包含可变字段记录不是固定长度的这样存储的优点是占用空间较少但是频繁的更新、删除记录会产生碎片需要定期执行 OPTIMIZE TABLE 语句或 myisamchk -r 命令来改善性能并且出现故障的时候恢复相对比较困难。 3、压缩表 压缩表由 myisamchk 工具创建占据非常小的空间因为每条记录都是被单独压缩的所以只有非常小的访问开支。 常用存储引擎 InnoDB 支持事务、外键约束支持行级锁定在全表扫描时仍然表级锁定 读写并发能力较好在5.5版本才支持全文索引缓存能力较好可以减少磁盘IO的压力数据和索引是存储在一个文件中。 使用场景适用于一致性要求较高数据频繁更新高并发读写的业务场景。 MyISAM 不支持事务、外键约束只支持表级锁定 适合单独的查询或写入读写并发能力较差支持全文索引占用资源较小适合硬件资源相对比较差的服务器使用数据和索引是分开存储的。 使用场景适用于不需要事务处理单独的查询或插入数据的业务场景。 查看系统支持的存储引擎 show engines;查看表使用的存储引擎 方法一show table status from 库名 where name表名\G 方法二use 库名; show create table 表名; 修改存储引擎 方法一 方法一通过 alter table 修改 use 库名; alter table 表名 engineMyISAM; alter table test09 enginemyisam; show create table test09; 方法二 方法二 通过修改 /etc/my.cnf 配置文件指定默认存储引擎并重启服务 vim /etc/my.cnf ...... [mysqld] ...... default-storage-engineINNODBsystemctl restart mysql.service注意此方法只对修改了配置文件并重启mysql服务后新创建的表有效已经存在的表不会有变更。 方法三 方法三 通过 create table 创建表时指定存储引擎 use 库名; create table 表名(字段1 数据类型,...) engineMyISAM;create table test10(name varchar(10),age char(4)) enginemyisam; show create table test10\G; InnoDB行锁与索引的关系 一、 delete from test1 where id1;     如果id字段是主键innodb对于主键使用了聚簇索引会直接锁住整行记录。   二、 delete from test1 where nameaaa; 如果name字段是普通索引会先锁住索引的两行接着会锁住相应主键对应的记录。   三、 delete from test1 where age23; 如果age字段没有索引会使用全表扫描过滤这时表上的各个记录都将加上锁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站上面的小图标怎么做的建材网站设计

1、大数据流程图 2、大数据各个环节主要技术 2.1、数据处理主要技术 Sqoop:(发音:skup)作为一款开源的离线数据传输工具,主要用于Hadoop(Hive) 与传统数据库(MySql,PostgreSQL)间的数据传递。它…

西安 网站搭建最好看的网站设计

在LabVIEW应用开发和部署过程中,确保LabVIEW版本、硬件驱动和Windows版本之间的一致性和兼容性至关重要。这不仅影响程序的稳定性和性能,还关系到项目的成功实施。本文从多角度详细分析这些因素之间的兼容性问题,并提供相关建议。 兼容性考虑…

怎么自己做网站教程设计网页公司哪里好

2019独角兽企业重金招聘Python工程师标准>>> [引言] 我们在学习Java编程的时候,如果需要开发客户端窗体类型的程序,可以使用JDK中的awt和swing库。本文开始小博老师就继续为大家演示Java窗体编程中的绘图技术,今天主要讲解绘图技术…

企业网站建设合同方案有哪些网站做团购最好

P2015 二叉苹果树 题意: 一个完全二叉树,n个点,n-1个边,每个边都有边权,问保留q个边,所能保留的最大边权是多少 题解: 树形dp dp[u][i]表示u的子树上保留i条边,至多保留的苹果数…

阜阳专业网站建设区块链网站开发

本文列举常见的java定时任务实现方式,并做一定比较。1. 循环内部sleep实现周期执行创建一个thread,run() while循环里sleep()来实现周期性执行; 简单粗暴,作为一个初学者很容易想到。public class Task1 {public static void main(String[] a…

五泉山网页设计宣传网站制作兰州优化定制

2019独角兽企业重金招聘Python工程师标准>>> Java中接口、抽象类与内部类学习 接口与内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类和抽象方法 抽象方法:仅有声明而没有方法体。 抽象类:包含一个或多个抽象方法的类&am…

网站建设合同表(书)vps如何做网站步骤

这篇文章将介绍如何使用Guava EventBus将更改发布到Java 7 WatchService检测到的目录或子目录中。 Guava EventBus是向应用程序添加发布/订阅通信的好方法。 Java 7 java.nio.file软件包中新增的WatchService用于监视目录中的更改。 由于EventBus和WatchService已在以前的文章中…

网站设置什么意思360建筑网一级消防

本文讨论了领导者在沟通过程中如何避免成为传声筒,通过筛选、处理和总结信息,在向上、向下沟通时保持相关性和真实性,提高沟通效率和效果。原文: The Dumbest Mistake Leaders Make in Communication 中层管理者作为高层领导、下属团队和其他…

网站建设活动广告网站建设 工作建议

我们知道,只要在一个Java类上加上Component、Service、Controller等注解,就可以被加载到Spring容器中,除了以上方式,加了Bean和Import好像也可以将对象添加到Spring容器中,究竟Spring是如何实现这些功能的呢&#xff1…

东莞外贸网站设计网页设计入门教学视频

一、python介绍python的创始人为吉多・范罗苏姆(Guido van Rossum)目前python主要应用领域:・云计算・WEB开发・科学运算、人工智能・系统运维・金融:量化交易,金融分析等,作为动态语言的python,语言结构清晰简单&…

绍兴网站推广福永网站建设公司

背景互联网时代的数据重要性不言而喻,任何数据的丢失都会给企事业单位、政府机关等造成无法计算和无法弥补的损失,尤其随着云计算和大数据时代的到来,数据中心的规模日益增大,环境更加复杂,云上客户群体越来越庞大&…

国外做储物柜的网站wordpress功能小工具栏

落地灯对于上班族、学生党来说真的很友好,能够提供贴合眼睛用光舒适的光度,使这些日常长时间用眼的人能够减少不良光线对眼睛造成的影响,从而科学健康的用眼! 市面上的落地灯产品越来越多,琳琅满目的产品让不少刚接触落…

环保设备网站建设模板舆情网站直接打开怎么弄

在最后的社区主题演讲后,我前往希尔顿金门大桥3/4/5观看了维克多巴生 ( Viktor Klang )的( Typesafe )“上,下,外:Akka”演讲。 巴生(Klang)是Akka的技术主管…

烟台网站制作工具什么样的网站好优化

在很多python脚本中在最后的部分会执行一个判断语句if __name__ "__main__:",之后还可能会有一些执行语句。那添加这个判断的目的何在? 在python编译器读取源文件的时候会执行它找到的所有代码,而在执行之前会根据当前运行的模块是…

织梦搬家 网站空白网站建设的平台分析

save和saveOrUpdate之间的区别是什么或save和persist之间的区别是任何Hibernate面试中常见的面试问题,就像Hibernate中get和load方法之间的区别一样。 Hibernate Session类提供了几种通过save , saveOrUpdate和persist等方法将对象保存到数据库中的方法。…

网站建设核心点tp框架做餐饮网站

ConfigurableListableBeanFactory 提供bean definition的解析,注册功能,再对单例来个预加载(解决循环依赖问题). 貌似我们一般开发就会直接定义这么个接口了事.而不是像Spring这样先根据使用情况细分那么多,到这边再合并 ConfigurableListableBeanFactory具体: 1、…

做公司网站的费用计入什么科目wordpress图片添加音乐

泽宇对自己的研究方向也就是知识图谱嵌入(KG Embedding)技术进行了总结,并制作了一套slides,力求让大家只看slides就可以理解并掌握知识图谱嵌入的相关知识和最新研究情况,包括知识图谱嵌入的基本概念、方法分类和经典…

给公司建立网站不可以做到的网络架构图怎么画

目录 0 引言1 函数指针模拟多播委托 🙋‍♂️ 作者:海码007📜 专栏:UE虚幻引擎专栏💥 标题:【UE 委托】如何利用函数指针理解委托的基本原理❣️ 寄语:书到用时方恨少,事非经过不知难…

公司网站维护一般需要做什么大数据技术建设网站

共享指针是 C 中一种智能指针,用于管理动态内存。它可以有效防止内存泄漏和悬空指针问题。在实际项目中,共享指针有以下几种常见的用法: 1. 管理对象的生命周期 共享指针可以用来管理对象的生命周期。当最后一个共享指针指向的对象时&#…

设计师网站 pins东营刚刚发生

目录 1.软件与平面基础 2.互联网插画 3.互联网运营设计 4.C4D三维制作 5.UI设计基础