찾다
데이터 베이스MySQL 튜토리얼自动生成索引的脚本
自动生成索引的脚本Jun 07, 2016 pm 04:32 PM
콘텐츠규약할 수 있다저작권색인각본자동으로 생성됨

本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/database/autocreateindex_script_release.html 写了个自动建索引的脚本,基本原理是解析SQL 的条件,然后得出每个条件

本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/database/autocreateindex_script_release.html

写了个自动建索引的脚本,基本原理是解析SQL的条件,然后得出每个条件的运算符,最后通过优先级矩阵将可以建索引的列排序求最长的序列,也就是尽可能把更多的列包含进索引。

使用方法:
./AutoCreateIndex.pl -e “你的SQL”

对于多表连接,务必将列名前跟上表名,否则无法处理,因为脚本并不连接数据库,无法判断哪个列属于那个表。
测试版本,Bug很多,欢迎提供意见。

Note: There is a file embedded within this post, please visit this post to download the file.

下面是一些例子

plx@plinux<span style="color: #66cc66;">-</span>Laptop:~<span style="color: #66cc66;">/</span>Dropbox<span style="color: #66cc66;">/</span>MySQLScript$ <span style="color: #66cc66;">./</span>AutoCreateIndex<span style="color: #66cc66;">.</span>pl <span style="color: #66cc66;">-</span>e <span style="color: #ff0000;">"SELECT * FROM foo1 a,foo2 b WHERE 'fdsfsa'=a.col1 AND b.col2 = 'abc' AND a.col1=b.col2 AND a.col3 >1 ORDER BY b.col3,b.col1"</span>
<span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> foo1 <span style="color: #993333; font-weight: bold;">ADD</span> <span style="color: #993333; font-weight: bold;">INDEX</span> idx <span style="color: #66cc66;">&#40;</span>col1<span style="color: #66cc66;">,</span>col3<span style="color: #66cc66;">&#41;</span>;
<span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> foo2 <span style="color: #993333; font-weight: bold;">ADD</span> <span style="color: #993333; font-weight: bold;">INDEX</span> idx <span style="color: #66cc66;">&#40;</span>col2<span style="color: #66cc66;">,</span>col3<span style="color: #66cc66;">,</span>col1<span style="color: #66cc66;">&#41;</span>;
plx@plinux<span style="color: #66cc66;">-</span>Laptop:~<span style="color: #66cc66;">/</span>Dropbox<span style="color: #66cc66;">/</span>MySQLScript$ <span style="color: #66cc66;">./</span>AutoCreateIndex<span style="color: #66cc66;">.</span>pl <span style="color: #66cc66;">-</span>e <span style="color: #ff0000;">"SELECT * FROM t1 where t1 =1 and t2=2"</span>
<span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> t1 <span style="color: #993333; font-weight: bold;">ADD</span> <span style="color: #993333; font-weight: bold;">INDEX</span> idx <span style="color: #66cc66;">&#40;</span>t2<span style="color: #66cc66;">,</span>t1<span style="color: #66cc66;">&#41;</span>;
plx@plinux<span style="color: #66cc66;">-</span>Laptop:~<span style="color: #66cc66;">/</span>Dropbox<span style="color: #66cc66;">/</span>MySQLScript$ <span style="color: #66cc66;">./</span>AutoCreateIndex<span style="color: #66cc66;">.</span>pl <span style="color: #66cc66;">-</span>e <span style="color: #ff0000;">"SELECT * FROM t1 where col1=1 and col2=4"</span>
<span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> t1 <span style="color: #993333; font-weight: bold;">ADD</span> <span style="color: #993333; font-weight: bold;">INDEX</span> idx <span style="color: #66cc66;">&#40;</span>col1<span style="color: #66cc66;">,</span>col2<span style="color: #66cc66;">&#41;</span>;
plx@plinux<span style="color: #66cc66;">-</span>Laptop:~<span style="color: #66cc66;">/</span>Dropbox<span style="color: #66cc66;">/</span>MySQLScript$ <span style="color: #66cc66;">./</span>AutoCreateIndex<span style="color: #66cc66;">.</span>pl <span style="color: #66cc66;">-</span>e <span style="color: #ff0000;">"SELECT * FROM t1 where col1>1 and col2=4"</span>
<span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> t1 <span style="color: #993333; font-weight: bold;">ADD</span> <span style="color: #993333; font-weight: bold;">INDEX</span> idx <span style="color: #66cc66;">&#40;</span>col2<span style="color: #66cc66;">,</span>col1<span style="color: #66cc66;">&#41;</span>;
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
如何在 Windows 11 上修复 100% 的磁盘使用率如何在 Windows 11 上修复 100% 的磁盘使用率Apr 20, 2023 pm 12:58 PM

如何在Window11上修复100%的磁盘使用率查找导致100%磁盘使用的有问题的应用程序或服务的直接方法是使用任务管理器。要打开任务管理器,请右键单击开始菜单并选择任务管理器。单击磁盘列标题,查看占用最多资源的内容。从那里开始,您将很好地了解从哪里开始。但是,问题可能比仅仅关闭应用程序或禁用服务更严重。继续阅读以查找问题的更多潜在原因以及如何解决这些问题。禁用SuperfetchSuperfetch功能(在Windows11中也称为SysMain)有助于通过访问预取文件来减少启动时

如何在 Windows 11 中隐藏文件和文件夹并从搜索中移除?如何在 Windows 11 中隐藏文件和文件夹并从搜索中移除?Apr 26, 2023 pm 11:07 PM

&lt;h2&gt;如何在Windows11上从搜索中隐藏文件和文件夹&lt;/h2&gt;&lt;p&gt;我们首先要看的是自定义Windows搜索文件的位置。通过跳过这些特定位置,您应该可以更快地看到结果,同时还可以隐藏您想要保护的任何文件。&lt;/p&gt;&lt;p&gt;如果要从Windows11上的搜索中排除文件和文件夹,请使用以下步骤:&lt;/p&gt;&lt;ol&

以下是6种修复Windows 11搜索栏不可用的方法。以下是6种修复Windows 11搜索栏不可用的方法。May 08, 2023 pm 10:25 PM

如果您的搜索栏在Windows11中不起作用,有几种快速方法可以立即启动并运行!任何微软操作系统有时都可能遇到故障,最新的操作系统不能免除该规则。此外,正如Reddit上的用户u/zebra_head1所指出的那样,同样的错误出现在Windows11的22H2Build22621.1413上。用户抱怨切换任务栏搜索框的选项随机消失。因此,您必须为任何情况做好准备。为什么我无法在计算机上的搜索栏中键入内容?无法在计算机上键入可归因于不同的因素和过程。以下是您应该注意的一些事项:Ctfmon.

Windows 11 Outlook 搜索不工作:6 个修复方法Windows 11 Outlook 搜索不工作:6 个修复方法Apr 22, 2023 pm 09:46 PM

在Outlook中运行搜索和索引疑难解答您可以开始的更直接的修复之一是运行搜索和索引疑难解答。要在Windows11上运行疑难解答,请执行以下操作:单击开始按钮或按Windows键并从菜单中选择设置。当设置打开时,选择系统>疑难解答>其他疑难解答。在右侧向下滚动,找到SearchandIndexing,然后单击Run按钮。选择Outlook搜索不返回结果并继续屏幕上的说明。当您运行它时,疑难解答程序将自动识别并修复问题。运行疑难解答后,打开Outlook并查看搜索是否正常。如

目录怎么自动生成 自动生成目录格式怎么设置目录怎么自动生成 自动生成目录格式怎么设置Feb 22, 2024 pm 03:30 PM

在word中挑选目录的款式,操作完成就可以自动生成了。解析1进到电脑的word,点一下引入。2进去后,点一下文件目录。3接着挑选文件目录的款式。4操作完成,就可以看到文件目录自动生成了。补充:总结/注意事项文章的目录自动生成,其中包括一级标题、二级标题和三级标题,通常不超过三级标题。

wps目录怎么自动生成目录页码wps目录怎么自动生成目录页码Feb 27, 2024 pm 04:01 PM

WPS是一款功能强大的办公软件,可以帮助我们高效地完成各种办公任务。其中,自动生成目录页码是一项非常实用的功能。能极大的为用户们提高自己的工作效率,那么下面本站小编就带来本文详细为大家介绍一下如何使用WPS自动生成目录页码,希望能帮助到各位有需要的小伙伴们。wps目录怎么自动生成目录页码首先打开wps群文档,在空白处输入要生成目录的内容,然后在开始菜单栏中选择标题1、标题2、标题3的样式。2、然后设置好之后我们点击其中的【引用】功能,点击之后在引用的工具栏中,在这里我们点击【目录】;3、最后点击

如何开发一个自动生成电子书的WordPress插件如何开发一个自动生成电子书的WordPress插件Sep 05, 2023 am 08:01 AM

如何开发一个自动生成电子书的WordPress插件随着社交媒体和电子阅读器的流行,电子书已成为人们获取和分享知识的重要途径之一。作为一名WordPress开发者,你可能会面临创建和发布电子书的需求。为了简化这一过程,我们可以开发一个自动生成电子书的WordPress插件。本文将教你如何开发这样一个插件,并提供代码示例供参考。步骤1:创建插件的基本文件结构首先

如何使用PHP进行API文档自动生成如何使用PHP进行API文档自动生成Jun 06, 2023 am 08:01 AM

随着互联网技术的不断发展,API成为了实现应用间数据交互的重要方式。在编写API的过程中,文档的编写和维护不可避免地成为了一个重要问题。然而,传统的手动编写和维护API文档的方式效率低下、易出错,不适合不断迭代的项目。而使用PHP进行API文档自动生成则可以有效提高效率,减少错误。本文将介绍如何使用PHP进行API文档自动生成。手动

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구