作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我有一个很大的表,我经常查询(仅选择)。该表大约有12,000行。自iOS问世以来,运行这些选择查询所需的时间增加了4-5倍。
有人告诉我需要在表中添加索引。我正在使用的查询如下所示:
SELECT * FROM book_content WHERE book_id = ? AND chapter = ? ORDER BY verse ASC
最佳答案
您需要有关book_id和Chapter的索引。如果没有索引,服务器将执行table scan
并将本质上将整个表加载到内存中以进行搜索。在CREATE INDEX
命令上快速搜索所使用的RDBMS。一次创建索引,每次执行INSERT
或DELETE
或UPDATE
时,服务器都会自动更新索引。索引可以是UNIQUE
,并且可以在多个字段上(在您的情况下为book_id和Chapter)。如果将其设置为UNIQUE
,则数据库将不允许您使用相同的键(在本例中为book_id和Chapter)插入第二行。在大多数服务器上,在两个字段上具有一个索引不同于在单个字段上具有两个单独的索引。
一个Mysql的例子是:
CREATE INDEX id_chapter_idx ON book_content (book_id,chapter);
CREATE UNIQUE INDEX id_chapter_idx ON book_content (book_id,chapter);
PRIMARY INDEX
是
UNIQUE
和
NOT NULL
的特殊索引。每个表只能有一个主索引。实际上,每个表应具有一个主索引以确保表的完整性,尤其是在连接期间。
关于iphone - 我有一张需要优化的庞大 table 。我想我需要使用索引,但我希望获得有关它们的更多信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8528744/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!