Hi Sergei,

I am working on writing proposal for this project currently.

Currently MariaDB lets user create index upto 1000 bytes. should we use new approach for prefixes less than <1000 chars also(but >63 or some other threshold) to improve performance?

Should I first work on MyISAM or Aria storage engine? I am thinking of starting with one and then porting to other.

From
Smit Hinsu


On Mon, Mar 17, 2014 at 8:33 PM, Sergei Golubchik <serg@mariadb.org> wrote:
Hi, Smit!

On Mar 17, smit hinsu wrote:
> Hi Sergei and Roberto,
>
> My name is Smit Hinsu and I am final year undergrad student. I have good
> knowledge about database internals and good experience with C++.
>
> I find feature of creating index on BLOB quickly using MD-5 interesting. I
> have understood basic requirements for this feature. I have following
> questions in my mind currently.
>
> I think, HASH index is not supported in MySQL's version of MyISAM storage
> engine. Has MariaDB removed this restriction?

No, it is not supported in MariaDB either. I mean, neither in MySQL nor
in MariaDB you can write

  CREATE TABLE (.... INDEX (...) USING HASH...) ENGINE=MyISAM

This doesn't work.

But both in MySQL and in MariaDB, MyISAM actually supports these
indexes! They are not available to the SQL user, but they are there in
the code. This task, precisely, is to provide SQL access to this
feature.

> We should support index for BLOB for BTREE index also in which we store
> only hash value of the value in BTREE. Is this possible?

That's what MyISAM does, yes.

> Can you suggest me some startup task related to index or storage engine
> which can make me familiar with the related parts? I have started to look
> at code.

Look in storage/myisam for "MI_UNIQUEDEF" - see where this structure is
used and how.

Regards,
Sergei