首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

phpspreadsheet使用

[CodeIgniter4]phpspreadsheet使用 使用一个开源库第一步肯定是要看官网文档咯,看完就要爬坑,爬坑就要写个博客压压惊 https://phpspreadsheet.readthedocs.io...可能会有安装失败问题,请修改php.ini文件,lnmpphp.ini位置:/usr/local/php/etc/php.ini disable_functions修改成如下即可,如果还不行就继续根据错误提示删除下面限制函数...xls还是xlsx情况 $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename); # 或者如果确定文件后缀,直接创建...$spreadsheet->getActiveSheet(); # 或者直接指定序号获得第一个sheet $sheet = $spreadsheet->getSheet(0); 开始读取sheet单元格数据...,如上面的$spreadsheet,然后实现对原有单元格覆写,生成新文件 # 新创建Spreadsheet对象 $spreadsheet = new \PhpOffice\PhpSpreadsheet

1.6K30

MySQL8函数索引

最近翻了下percona blog,发现 MySQL从8.0.13也引入了函数索引了,这个特性貌似在PG很早就具备了。。。 在5.7,我们可以使用虚拟列来实现函数索引效果。...我们已经看到了一个涉及应用于列简单函数示例,但是您可以创建更复杂索引。...函数索引可以包含任何类型表达式,而不仅仅是单个函数。...can not include functional key parts - A functional key part can not refer to a column prefix 最后,请记住,函数索引仅对优化使用完全相同函数表达式查询有用...下面的这几个都不会走我们创建month函数索引,依然会需要全表扫描。当然我们也可以创建多个函数索引来解决多个不同查询问题。

68920
您找到你想要的搜索结果了吗?
是的
没有找到

mysql函数索引_MySQL 函数索引 (Functional indexes)

指定其排序方式,如下: alter table sbtest1 add index idx_1(name desc, (age*10) asc ); 函数索引限制条件: 函数索引实际上是作为一个隐藏虚拟列实现...,因此其很多限制与虚拟列相同,如下: 函数索引字段数量受到表字段总数限制 函数索引能够使用函数与虚拟列上能够使用函数相同 子查询,参数,变量,存储过程,用户定义函数不允许在函数索引上使用 虚拟列本身不需要存储...,函数索引和其他索引一样需要占用存储空间 函数索引可以使用 UNIQUE 标识,但是主键不能使用函数索引,主键要求被存储,但是函数索引由于其使用虚拟列不能被存储,因此主键不能使用函数索引 如果表没有主键...,那么 InnoDB 将会使其非空唯一索引作为主键,因此该唯一索引不能定义为函数索引 函数索引不允许在外键中使用 空间索引和全文索引不能定义为函数索引 对于非函数索引,如果创建相同索引,将会有一个告警信息...但是查询 SQL 参数必须与函数索引定义时参数完全相同才能使用该索引,如下示例: CREATE TABLE tbl ( col1 LONGTEXT, INDEX idx1 ((SUBSTRING(

3.3K20

索引b树索引

1.索引如果没有特别指明类型,一般是说b树索引,b树索引使用b树数据结构存储数据,实际上很多存储引擎使用是b+树,每一个叶子节点都包含指向下一个叶子节点指针,从而方便叶子节点范围遍历 2.底层存储引擎也可能使用不同存储结构...根据主键引用被索引行 4.b树意味着所有的值是按照顺序存储,并且每一个叶子页到根距离相同 5.b树索引能够加快访问数据速度,存储引擎不需要再进行全表扫描来获取需要数据,取而代之是从索引根节点开始进行搜索...,根节点存放了指向子节点指针,存储引擎根据这些指针向下层查找.通过比较节点页值和要查找值可以找到合适指针进入下层子节点.树深度和表大小直接相关 6.叶子节点比较特别,他们指针指向是被索引数据...,而不是其他节点页 7.b树对索引列是顺序存储,所以很适合查找范围数据. 8.索引对多个值进行排序依据是,定义索引时列顺序,比如联合索引key(a,b,c),这三个列顺序 9.上面的联合索引对以下查询语句有效...,可以用于查询order by操作,如果可以按照某种方式查到值,那么也可以按这种方式排序

1.3K20

Oracle|函数索引

函数索引 在Oracle,有一类特殊索引,称为函数索引(Function-Based Indexes,FBI),它基于对表列进行计算后结果创建索引。...函数索引在不修改应用程序逻辑基础上提高了查询性能。如果没有函数索引,那么任何在列上执行了函数查询都不能使用这个列索引。当在查询包含该函数时,数据库才会使用该函数索引。...2.不建议使用自定义函数 如果被函数索引所用自定义函数失效或该函数索引属主没有了在函数索引里面使用函数执行权限,则会导致ORA-06575错误 重新修改自定义函数并在编译无报错通过后,方可正常使用...3.创建函数索引函数必须是确定性。即,对于指定输入,总是会有确定结果。 4.创建索引函数不能使用SUM、COUNT等聚合函数。...5.不能在LOB类型列、NESTED TABLE列上创建函数索引。 6.不能使用SYSDATE、USER等非确定性函数

92250

第21期:索引设计(函数索引

如果将表达式或者操作符也看做函数的话,简单来说,这样索引就可以统称函数索引。...函数索引使用场景 函数索引最最经典使用场景莫过于就是对日期处理,特别是表只定义了一个字段,后期对这个字段查询都是基于部分结果。...log_time 加一新索引,基于函数 date 函数索引。...json_unquote 调用结果排序规则为 utf8mb4_bin,cast 调用结果排序规则和当前 session 排序规则一样,有可能不是 utf8mb4_bin,所以函数索引要显式定义排序规则...函数索引替代前缀索引? 之前讲过前缀索引,可能会有这样疑问。前缀索引能不能被函数索引替代?当然是不行

75610

Mysql索引

单列索引:索引只包含一个列。 组合索引:在多个字段上建立索引,只有在查询条件顺序使用了这些索引,索引才有效果。使用组合索引遵循最左前缀原则。...FULLTEXT(全文索引):全文索引类型为FULLTEXT,在定义索引列上支持值全文查找,允许在这些索引插入重复值和空值。...(各种函数) having select distinct order by limit 所有的查询都是从from开始,在执行过程,每个步骤都会为下一个步骤生成一个虚拟表vt1(选择相对较小表做基础表...图中每个节点称为页,页就是我们上面说磁盘块,在MySQL数据读取基本单位是页,所以我们这里叫做页更符合MySQL索引底层数据结构。...聚簇索引和非聚簇索引 在MysqlB+树索引按照存储方式不同分为聚集索引和非聚集索引

3.2K20

MySQL索引前缀索引和多列索引

正确地创建和使用索引是实现高性能查询基础,本文笔者介绍MySQL前缀索引和多列索引。...,因为MySQL无法解析id + 1 = 19298这个方程式进行等价转换,另外使用索引时还需注意字段类型问题,如果字段类型不一致,同样需要进行索引计算,导致索引失效,例如 explain select...,第二行进行了全表扫描 前缀索引 如果索引值过长,可以仅对前面N个字符建立索引,从而提高索引效率,但会降低索引选择性。...当出现索引合并时表明表上所有是有值得优化地方,判断是否出现索引合并可以观察Extra列是否出现了如下信息 Using union(account_batch_batch_no_index,account_batch_source_system_index...); Using where 复制代码 如果是在AND操作,说明有必要建立多列联合索引,如果是OR操作,会耗费大量CPU和内存资源在缓存、排序与合并上。

4.4K00

【DB笔试面试550】在Oracle函数索引是什么?

♣ 题目部分 在Oracle函数索引是什么?...♣ 答案部分 在Oracle,有一类特殊索引,称为函数索引(Function-Based Indexes,FBI),它基于对表列进行计算后结果创建索引。...函数索引在不修改应用程序逻辑基础上提高了查询性能。如果没有函数索引,那么任何在列上执行了函数查询都不能使用这个列索引。当在查询包含该函数时,数据库才会使用该函数索引。...函数索引可以是一个B-Tree索引或位图索引。 用于生成索引函数可以是算术表达式,也可以是一个包含SQL函数、用户定义PL/SQL函数、包函数,或C调用表达式。...② 如果被函数索引所引用用户自定义PL/SQL函数失效了或该函数索引属主没有了在函数索引里面使用函数执行权限,那么对这张表上执行所有的操作(例如SELECT查询、DML等)也将失败(会报错:

1.5K10

初识MongoDB索引

索引就像图书目录一样,可以让我们快速定位到需要内容,关系型数据库中有索引,NoSQL当然也有,本文我们就先来简单介绍下MongoDB索引。...---- 索引创建 默认情况下,集合_id字段就是索引,我们可以通过getIndexes()方法来查看一个集合索引: db.sang_collect.getIndexes() 结果如下: [..."key" : { "x" : 1.0 }, "name" : "myfirstindex", "ns" : "sang.sang_collect" } 当然索引在创建过程还有许多其他可选参数...,默认为false 4.unique是否创建唯一索引,默认false 5.sparse对文档不存在字段是否不起用索引,默认false 6.v表示索引版本号,默认为2 7.weights表示索引权重...好了,MongoDB索引入门我们就说到这里,小伙伴们有问题欢迎留言讨论。 参考资料: 1.《MongoDB权威指南第2版》

1.2K50

InnoDB索引类型

而聚簇索引B+树非叶子节点一般由数据表主键负责构造(当然也可能不是主键,这个后文会进行说明)。...如果开发人员删除了InnoDB引擎某张数据表索引,那么这个数据表将自行寻找一个非空且带有唯一约束字段作为主索引。...如果还是没有找到那样字段**,InnoDB引擎将使用一个隐含字段作为主索引(ROWID)**。 B+树构造特性在这里就得到了充分利用,因为只需要将主索引B+树非叶子节点加载到内存。...非主索引(辅助索引/二级索引) 数据表索引列表除去主索引以外其它索引都称为非主索引。非主索引都是使用非聚簇索引方式组织数据,也就是说它们实际上是对聚簇索引进行检索数据结构依据。...条件建索引是极其重要一个原则; 注意不要过多用索引,否则对表更新效率有很大影响,因为在操作表时候要化大量时间花在创建索引 3、复合索引会替代单一索引么 如果索引满足窄索引情况下可以建立复合索引

66220

MySQL哈希索引

mySQL哈希索引 在MySQL,如果你使用是Innodb存储引擎,那么经常会遇到B+树索引概念,关于这个概念,之前文章我们讲过,除此之外,还有一种索引值得关注,那就是"哈希索引"。...这样做有一个比较直观问题,就是有的数字映射到了集合同一个位置,把这种现象称之为哈希碰撞,解决这种碰撞最直接办法就是使用链接法,就是映射到集合同一位置元素用链表进行链接,这样查询时候,就可以直接去遍历这个链表进行查询了...确切说,对于Innodb哈希索引,有以下特点: 1、Innodb哈希索引不能由用户手动创建。也就是常说自适应哈希索引,站在这个角度来讲,确实不支持哈希索引。...2、Innodb会自动调优,如果判定自适应哈希索引能够提升效率,Innodb会自己建立相关哈希索引,这个层面上讲,Innodb又支持哈希索引。 Innodb哈希是怎样使用呢?...有优点也就有缺点,当然,缺点是和B+树索引对比而来,Hash索引和B+ Tree索引区别有: 1、哈希索引只能适用于等值查询,对于范围查询场景,它无能为力,而B+ Tree索引可以轻松处理; 2

1.6K20

函数使得索引列失效

索引列上使用函数使得索引失效是常见索引失效原因之一,因此尽可能避免在索引列上使用函数。...尽管可以使用基于函数索引来 解决索引失效问题,但如此一来带来比如磁盘空间占用以及列上过多索引导致DML性能下降。本文描述是一个索引列上使用函数使 其失效案例。...BUSINESS_DATE列,而查询语句并没有走索引而是选择全表扫描,而且预估所返回     行Rows与bytes也是大惊人,cost值96399,接近10W。...'条件不会限制索引使用        SUBSTR(business_date, 1, 6) = SUBSTR('20110728', 1, 6)使用了SUBSTR函数,限制了优化器选择索引       ...基于business_date列来建立索引函数,从已存在索引来看,必要性不大   2.改造SQL语句     SUBSTR(business_date, 1, 6) = SUBSTR('20110728

92030

phpspreadsheet中文手册_php file_put_contents

大家好,又见面了,我是你们朋友全栈君。 今天遇到一个问题,涉及 php 与 excel 之间数据转换。之前一直用 PHPExcel,他们开发组不更新了。但是找到了 PhpSpreadsheet。...\PhpSpreadsheet\Reader\Csv(); spreadsheet = reader->load( 当只要读取数据,不要格式时,实例读取器 readDataOnly 属性,如下$inputFileType...->getActiveSheet() ->setTitle(pathinfo($inputFileName,PATHINFO_BASENAME)); } 注意:对多个工作表使用相同工作表索引不会将文件附加到同一工作表...转为数组 文件最后会载入到一个对象,我称为 spreadsheet 工作表对象,这个对象存放着所以工作表集合信息(数据信息和格式信息、工作表信息等)$spreadsheet = PhpOffice...() as cells = data->toArray(); } 结语 PhpSpreadsheet 是非常不错 php 电子表格处理工具类,后续有时间在补上写入和导出。

5K40

MySQL 索引

叶子节点除了包含键值以外,每个叶子节点中索引还包含一个书签。该书签用来告诉 InnoDB 存储引擎哪里可以找到与索引相对应行数据。...同样是基于索引查询,查询结果也是相同,那为什么查询效率不一样呢?举个例子来说明下,假设有数据表 T,表包含三个字段 id、emp_no 和 gender,id 为主键,并且在 k 上有索引。...表 R1~R5 值分别为(3, 300, "M")、(5, 500, "M")、(8, 800, "F")、(13, 1300, "F") 和 (21, 2100, "M"),聚簇索引和非聚簇索引索引示意图如下...也就是说,基于非聚簇索引查询需要多扫描一棵索引树。因此,我们在应用应该尽量使用主键查询。 覆盖索引 上一节讲到,当使用非聚簇索引查询数据时,由于查询结果需要数据只在主键索引上有,所以不得不回表。...最左前缀原则 从前面的例子,可以看出索引存在确实大大提高了查询效率,那是不是需要为每个查询都设计一个索引,答案是大可不必。

1.5K30

「Mysql索引原理(三)」MysqlHash索引原理

哈希索引限制 哈希索引只保存哈希码和指针,而不存储字段值,所以不能使用索引值来避免读取行。...)会影响查询速度,此时需遍历索引行指针,逐行进行比较。...如果哈希冲突很多,一些索引维护操作代价会很高。 ? 如果从表删除一行,需要遍历链表每一行,找到并删除对应行引用,冲突越多,代价越大。...自定义哈希索引 在InnoDB,某些索引值被使用非常频繁时候,它会在内存基于B+Tree基础上再创建一个哈希索引,使其不必要在从根节点就行查找。...全文索引 全文索引是一种特殊类型索引,它查找是文本关键字,而不是直接比较索引中值。全文索引和其他类索引匹配方式完全不一样。

8.4K11
领券