I am quite new to the mysql phpMyadmin environment, and I would like to have some area
1. I need a field of text that should be up to around 500 characters.
Does that have to be “TEXT” field? does it take the application to be responsible for the length ?
-
indexes. I understand that when I signify a field as “indexed”, that means that field would have a pointer table and upon each a WHERE inclusive command, the search would be optimized by that field (log n complexity). But what happens if I signify a field as indexed after the fact ? say after it has some rows in it ? can I issue a command like “walk through all that table and index that field” ?
-
When I mark fields as indexed, I sometimes get them in phpMyAdmin as having the keyname
-
for accessing the table by the indexed field when I write php, does it take an extra effort on my side to use that keyname that is written down there at the “structure” view to use the table as indexed, or does that keyname is being used behind the scenes and I should not care about it whatsoever ?
-
I sometimes get the keynames referencing two or more fields altogether. The fields show one on top of the other. I don’t know how it happened, but I need them to index only one field. What is going on ?
-
I use UTF-8 values in my db. When I created it, I think I marked it as utf8_unicode_ci, and some fields are marked as utf8_general_ci, does it matter ? Can I go back and change the whole DB definition to be utf8_general_ci ?
I think that was quite a bit,
I thank you in advance!
Ted
First, be aware that this not per se something about phpmyadmin, but more about mysql / databases.
1)
An index means that you make a list (most of the time a tree) of the values that are present. This way you can easily find the row with that/those values. This tree can be just as easily made after you insert values then before. Mind you, this means that all the “add to index” commands are put together, so not something you want to do on a “live” table with loads of entries. But you can add an index whenever you want it. Just add the index and the index will be made, either for an empty table or for a ‘used’ one.
2)
I don’t know what you mean by this. Indexes have a name, it doesn’t really matter what it is. A (primary) key is an index, but not all indexes are keys.
3)
You don’t need to ‘force’ mysql to use a key, the optimizer knows best how and when to use keys. If your keys are correct they are used, if they are not correct they can’t be used so you can’t force it: in other words: don’t think about it 🙂
4)
PHPMYADMIN makes a composite keys if you mark 2 fields as key at the same time. THis is annoying and can be wrong. If you search for 2 things at once, you can use the composite key, but if you search for the one thing, you can’t. Just mark them as a key one at a time, or use the correct SQL command manually.
5)
you can change whatever you like, but I don’t know what will happen with your values. Better check manually 🙂